I think from the client point of view the advantage of having "full-stack" developers is that it saves you some trouble of team management. With more specialized team you need some fronted developers, some backend developers and an architect to ensure that the pieces fit. And you have some inneficiencies, when front-end peoples are swamped with work, and backend guys are sitting idle, or vice versa. In a team composed solely of full-stack devs people are more interchangeable.