If .LRN wants to make changes to OpenACS core that are only applicable for .LRN, there is always the risk that other pages use the normal OpenACS API and therefore break. But this is live after forking ;).
On the other hand, the above approach has a *huge* drawback. If you reload the original TCL of OpenACS core, you will get the OpenACS function back, not the .LRN one. It is something all developers would have to be taught (if you use .LRN do not reload packages, but restart the server).