Asterisks aren't an invention of the web, they're a hold over from paper forms. It is/was common to have an asterisk beside required fields. Because that was already a convention it was adopted by designers & ported over to digital.
> You can separate required and non required fields
I think this is good when its appropriate to the data. It's almost like you'd apply it at a fieldset level rather than field level. As in, asking for username/email/password and then in another section asking for what your interests are for the algo recommendations is great.
If you have something like fields for name — first name/last name are both mandatory; middle name is optional — it would really break the flow of the form if they weren't in conventional order.