For archiving, I think the original goal was to disallow anybody to access it, but in a fool way without permission security checks. So it is not a long term solution.
For instance, here at Galileo we have the necessity for making our "old" class portals and its contents available for the users, but in a read-only mode, then we did a *clever but dirty* hack to make that possible, now our users can look and download all the content of classes that they took in the past without being able to change anything (those classes are expired).
Works good and we are looking forward to create a general method for this. Probably now that we have a general proc to instantiate objects "package_instantiate_object", then, for making this possible the best might be to create a:
* package_edit_object
* package_delete_object
Then, we'll have one place to control any possible change to objects (create/edit/del) among all the different packages. This might not be a difficult work, but will be a lot of work to refactor everything. Galileo plans to dedicate a developer to make this happen around the first 3 months of the next year. We don't want to fork our installation from the main source, while we think this addition will be important for many real scenarios.
The main point, is not the technological implementation, is that we aim to create/grow an e-learning environment that contains the history (interactions, postings, documents, grades, etc) of every student, while this is in part a repository of learning objects, beyond that is the learning experiences accumulated through the time as a record that will be preserved for the future centered in the user. Like many have already said, .LRN goes beyond an LMS.