Multiple copies of wallet.dat with a constraint I know it is generally a very bad idea to share one wallet.dat between many clients on different machines because public/private key sets start divirging after some time if all the clients are allowed to recieve and spend money and this leads to a possibility of a dangerous collision.

However, what if I introduce a constarint that, say, of 5 machines with shared copies of wallet.dat, only one particular machine can both recieve and spend bitcoins while the rest of 4 machines are only allowed to recieve payments. 

Would this be a safe setup or would there still be a risk of losing coins?
The risk is if you have shared private keys on multiple computers. Even if you maintain a personal discipline that you won't spend from those other 4 wallets, the risk is still there.  With those private keys still on the other computers, you have opened up 4 additional vectors of attack on your keys, as well as given yourself 5 times the workload securing it all. 

You should only have the private keys for your addresses on the one machine that you say you want to spend from.  

On the other 4, you should only use "watch only" clients, such as the online wallet at blockchain.info or Armory. There are others as well. Both of those wallets will let you set up public keys to watch, but not spend from, because they don't also have the associated private keys. 

Watch only wallets can receive funds just like any other wallet -- you're just watching the balance on the blockchain.