The reason behind is the same as many things which have changed in the UI practice over last decade. Instead of using implicit assumptions on what symbols mean UI designers tried to become more explicit in their work. Just consider this, when the "*" symbol first appeared to designate required fields it was frequently accompanied by a red-color note "Fields marked with * are required" or, worse, user was given an error when they missed *-marked fields.
At some point designers realized that this is a bad practice. Instead of making an implicit indication what is required and what is not, they were forcing people to be careful to notice that "*" and don't miss a field.
BTW, in such forms, like those in your question, I prefer to not have required indication at all. If something is optional, don't collect it on registration. If you still need it - encourage the user to provide it later. For instance, with the help of profile completeness indicator.
Thus, remove "required"/* from all fields and keep your screen cleaner. User will assume that all fields are required (otherwise, why they are there?) and fill them in with data.
Responding to the great feedback I received in the comment section, I would like to clarify my point. There are three categories of fields: Required, Optional and Conditionally Required. Conditionally Required fields are required when the data are present. The difference with optional fields is that skipping the latter will not prevent the application from doing its primary function, but skipping the former will be a blocker. For instance, Address 2 field is a conditionally required field because if a user lives in an apartment and Address 2 is not provided the system will not be able to work. However, if user lives in a house Address 2 is not needed => condition is it a house or an apartment. Conditionally required fields appear along with required, optional fields maybe skipped.
I'm a proponent of designs where there is no indication if a field is required, as it encourages the user to complete all fields. This also curbs the phantasy of designers who enjoy adding optional fields -> clutter the screen. Users should provide only the data needed to get from the system what it's designed for. If we need something else, let's think how to turn our goals into users' goals and collect the data.