For large environment it is recommended to have separate instance.
We in our environment kept Deployer and Cluster Master in same instance without any problem.But in case if we required to restart anyone of the splunk role then eventually it affects other role.Hope this helps.
And the above answer is absolutely right in case of large environment and which is very sensitive.
@riqbal, refer to following answer by @ChrisG https://answers.splunk.com/answers/305549/is-it-possible-to-run-cluster-master-and-deploymen.html