Yes you can use macros to get data from other objects to set as default values. The key is you need to make sure those other fields are filled out otherwise they will return a null/empty value. For instance if you want to prefill someones first and last name in a form you can use:
CurrentUser.LastName. BUT the registration process of creating an account out of the box, doesn't require a first and last name so those values will be empty. The FullName field is required though.