I think the main issue of this approach is that you cannot use the email validation. Any register will need to be accepted eitherway to be able to do secured custom Function and custom data.
The need to be able to add extra data in the registration process should be a top priority… sometimes that data need to be used in the validation/registration process way before the use should be able to log in.