Hi Nima, I like what you are going to do, and thanks for sharing your plans. Now I'm not sure if dotlrn-catalog is the right place.
The intention of the dotlrn-catalog is to be that, a catalog of courses (past, present, future), and to which areas within the institution those courses belongs to.
For a registration process, I'll suggest to have it outside of dotlrn-catalog, we'll keep the systems more modular, and at the same time, more extensible. You might substitute dotlrn-catalog course to assessment relation, to course to "registration-process" relation, and that registration process can be an external system, like the one you propose or a simple assesment.
What do you think?
The only extension I see so far for dotlrn-catalog, in order to make it more usable for dotlrn real scenarios, is to add roles to the areas (faculty of medicine for example), and propagate permissions to those roles (users) in the class instances.