Mongo Shard Server Doubling as Another Shard's Replica Server
Normally network speed (read/write) is not bottleneck, so application servers can be separated from mongod primaries. 

If you plan to make cluster and put application to primaries so that application writes only that shard where it's data lies it's going to be a little bit tricky to select right sharding key.

Only concern is the memory, normally you DON'T put any applications to mongod nodes, because mongod uses ALL the memory, eventually! Atleast at situation where your data+indexes are bigger than free memory (at start of machine).