My reply is imperfect, but while we wait for better replies:
I put BOTH fake_migrate and migrate to False to avoid having files there.
For the upload, I have descriptions of how to upload on Google Cloud Storage here:
https://learn-py4web.github.io/unit19.html . You could modify that to upload to Amazon S3. I think in general uploading to the db is a bad idea for scalable apps, because it's better to put big objects in a blobstore than in a db, but it could be ok for a smaller app.
I do not know how to change the behavior of the 'upload' field to upload to a database, but I think it would be a better default than uploading to the file system.
More generally, I am a big fan of de-stating web servers, as all their state should be in db + blobstore + etc. I would be very interested in documenting this better in a Unit in that series of units, and changing (optionally maybe) the behavior of upload to upload to db (or perhaps have a new type called 'dbupload' ?).
Only problem is, I cannot directly work on it before September, due to other work I need to finish first, but I am certainly interested, so if you like to collaborate / think at it / ... it would be great.
Luca