Hola Cristian, la pregunta es muy buena, aunque todo dependerá de las necesidades.
Siempre que se pueda mejor utilizar webservices (JSON al ser posible) pues tienen muy poca carga, gastan menos batería en dispositivos y consumen menos datos. Ha esto se le aplican muchos casos: Listados de datos (como este Foro), peticiones por acción de usuario, descarga de multimedia, etc
Si bien es cierto que no todo se puede hacer con servicios y hay que utilizar Sockets: cosas que tengan que ser en directo e interactivas vía AJAX, como pueden ser salas de Chats, juegos que requieran actualización inmediata, eventos inmediatos como llamadas a través de servidor, etc.
Los Sockets consumen algo más de recursos y de batería si hablamos de móviles. Facilita también la recepción de datos que no le sirvan al usuario y se pierdan, con el consiguiente gasto de datos. Además, que Sockets al ser eventos complican el testeo.
Es decir, mi recomendación, es que emplees una mezcla si la necesitas (para la mayoría de aplicaciones no necesitas Sockets): Sockets para cuando requieras de eventos inmediatos a través de servidor (y no se puedan hacer con webservices), y webservices para todo lo demás.
De cualquier manera, dependerá de tu sistema y lo solicitado por la empresa. Hacer las dos cosas complica y alarga el desarrollo.