So a few thoughts on this...
You can have multiple DMCs, but you need to understand the requirements. Typically these are run on the CM because the CM is aware of all the members of the cluster and DMC has full functionality because of this. If you offload this to a different server, you will need to add all of the Peers on that host in order for the DMC to query them via REST. This works well and is perfectly doable.
Running DMC off the deployer and DS is not a problem assuming the resources are available for both of the other components. Depending on the number of clients the DS manages, you need to watch your disk I/o.. Deployer isnt a heavily used function, but disk and network should be considered also for this instance..
And for the CM and LM, virtual is the way to go. These require very little resources, and in regards for HA / DR, having these as virtual is beneficial for minimizing your down time. And you could reclaim that server into your IDX tier or one of your SHC..
... View more