Yes, if you want users to be able to register, you would need to allow public registrations and implement your own standard registration form:
https://craftcms.com/docs/templating/user-registration-form
When they enter their email as an anonymousea guest (anonymous) user a guest'guest' customer record is created and related to the current cart, but it is not associated with a craft user account. This customer accountrecord is not retreiveableretrievable and is only created for the purpose of having a related customer to the current order. There is no way to see this customer record in the back-end.
If the user is logged in a related customer record is created that has a 1:1 relationship with the user. The same customer record is used everytimeevery time the logged in user isuseris logged in. This customer is the central place that addresses and orders are related to. If you want to see the previous orders for a customer, add the "Customer Info" field to your user profile custom fields.