Handling uploaded resources for local development
Yes your database and files need to be kept in sync to avoid 404s as you describe. 
With our setup all developers have access to a backed up copy of the database and files. The backups of both database and files are synchronised so together they're essentially a snapshot of the production site. I personally use a collection of Drush commands wrapped up in a shell script in order to restore this snapshot to my local machine.