I think this is dependant on what you're doing with S3. I'm only using it for backup and use the tarball name and date/timestamp as the key name. This ensures that it's unique and easy to understand when you need to restore.
If I were going to use them for hosting my videos or something, I'd probably just use the GUID without the need for the MD5. Just make sure there's not chance of duplicates in the database schema and it should work.
I use Bacula for network backups and it does the same thing. All paths and filenames are stored as unique ID numbers.