Just to follow on from Joe's comments,
> I believe these are basically the same files contained in an MMPK package, just not packaged.
That's correct. When you take a map offline via the Runtime it creates the same structure as a MobileMapPackage created from Pro just not archived (to allow editing of data). In both cases you can access the data using the MobileMapPackage API in Runtime bu supplying the path to the .mmpk file or to the directory.
> the number of pre-packaged maps is very limited (I believe 16 per web map)
Also correct. You can create new copies of the webmap if you require more areas.
If you want to go the route of taking individual layers offline, the relevant Runtime API is the GenerateGeodatabaseSyncTask.
We definitely recommend using the Runtime APIs to take maps/layers offline. Whilst you could do this directly via the REST API you would need to handle authentication, edit validation, error handling etc. yourself. Using the Runtime API takes care of these things for you and also gives access to the other parts of the API for visualizing and analysing your data etc.