Does anyone know of any reason for preferring a physical SRM server over a virtual SRM server?
Also, any preferences on whether the SRM db is remote or local?
Actually I don´t see any benefit / advantage for a physical SRM server, but a lot of disadvantages.
On the first it seems simular to the discussion on the vCenter installation (virtual vs physical). But in an SRM deployment you have always minimum two independent sides. If your primary site goes down you will have a protected site with a second vCenter and also a second SRM server. So there shouldn ´t be a szenario where you could come into a szenario where you need an isolated physical SRM server.
Shortly I wrote a blog post with reasons to run a vCenter installation as a VM, most of the advantages of course also apply to a SRM server: http://vknowledge.net/2012/03/18/vcenter-design-why-you-should-run-it-virtual//
About your DB question:
This strongly depends on your size. How many VMs are you going to protect with your SRM server? In small and medium SRM installation I would keep the SRM server and DB togehter. Even an installation on the vCenter server is possible (saves licence costs, Win + SQL) but should only be down in really small environments.