Best Practices depend upon goals, environments, and customers. You need to understand your options and make a choice.
You could, for example, do everything you described by creating a Quick-Add package (using the Recon app) and deploying that to the Macs you wish to manage. You could do OTA enrollment, and set the Computer Management Framework Settings (again, all of the options you want are there), and have users or techs run that by visiting https://yourjss.com:8443/enroll. Another option is to use Casper Imaging and just make sure you set up the configuration to utilize your desired management account (settings built in for hiding it).
If you had existing Macs, and were already attempting to manage them somewhat (for example, with ARD), I might use a Quick-Add package and send that out. If you wanted to start from scratch, depending on your model, I might go with Imaging (strict/managed) or Self-enrolled (BYOD, self-service, etc).
Personally, our Macs get ordered through controlled processes (mostly) and get set up by techs before the user ever touches them, so we do this via Casper Imaging. Back when this was first started, there was a combination of techs using the enroll URL or a quick-add package deployed as a part of another imaging workflow (deploy studio I think).