Hi Jeremy,
On #2, there should be little if any redundancy. You're right that the same object is being created in more than one table, but the tables store different data. The acs_objects table stores information that any interesting object in the system should have, whereas tables like portal_pages store data that is very specific to the portal system.
On #3, "online" means that the user loaded a page in the last 10 minutes. The system could in theory purge a user from this list when they log out, but at present I don't think it does.
On #6, yes it's confusing. "Add a user" means adding an OpenACS user to dotlrn. The button is labelled "Search" because if the person is already an OpenACS user, they should be locate-able in the user database. For creating a brand new user, try Create a New User, just above "Search dotLRN users for user:".