This is a very common question I get in most CSM workshops. It is hard to say without knowing the context. So, I generally give the following guidance.
Ask your self the following questions:
Are the roles involved in a conflict with each other in your context?
For example, the PO and SM played by the same person. It usually doesn’t work very well since one is a demanding role and the other is a protecting role. Someone argued that he can draw the line and balance between these roles. So, you need to understand who is going to play the roles and what could happen in your context. Another example could be Manager playing SM role, one is authoritative and the other is a servant leader.
Can they justify both roles?
For example, Developer and SM are played by the same person. Can that person be ever a great developer or a great ScrumMaster? What would be their career path? Should this person learn architecture and design skills or facilitation and coaching skills?
If something goes wrong, what role this person is going to stick to and what is the consequence of that?
For example, someone playing Tester and SM. Tomorrow is the release and your whole team is a war room. Tester/ScrumMaster is busy testing. If there is a bigger impediment for the team, who is going to work on that?
As per Scrum, all roles are full-time roles to play it fully. However, there could be situations where the dual roles may be possible. Examples could be a very small team where they can’t afford a full-time ScrumMaster or a highly matured team where a full-time ScrumMaster is not needed. Be cognizant that having someone play dual roles while there is a need for full-time roles hampers the transformation. A lot of organizations feel that they can save money by making someone play a part-time role. However, think about the cost of delay in improved value throughput.
The only way to go faster is going right!