I would steer clear of actually making modifications in the Core code itself for this. An alternative solution would be to create a new module that detects if they have a page created for them yet or not and, if not, create it from the module. This allows for upgrades to later versions of the core without you having to rehash all your custom code, and also allows for greater customizability/extensibility in the future as well.
You could have the module exist on all pages if you wanted, or just a "My Pages" landing spot. There are already similar modules to this out there, depending on what you are looking for in hard requirements. Suggestions include the Smart-Thinker modules, and you could search on SnowCovered for more ideas.
However, if you wish to pursue the registration stuff a place to start looking would be DotNetNuke.Entities.Users.UserController.CreateUser and then the admin modules for the registration sources. DotNetNuke.UI.UserControls.
Good luck!