El enfoque más simple es usar un único repositorio, por lo que, a menos que le guste la complejidad por el bien de la complejidad, esa debería ser la opción predeterminada en ausencia de argumentos convincentes de lo contrario.
¿El desarrollo del cliente y del servidor será llevado a cabo por diferentes organizaciones? ¿Habrá múltiples implementaciones del cliente (o servidor)? ¿El cliente es de código abierto y la implementación del servidor es secreta? Si la respuesta a todas estas preguntas es "No", entonces cualquier cosa más compleja que un solo repositorio puede traer inconvenientes sin ningún beneficio.
Si elige mantener bases de código separadas, necesitará políticas claras sobre cómo se administra esto, para evitar incompatibilidades y dependencia de infierno. Después de superar los primeros inconvenientes, puede terminar descubriendo que lo más seguro es siempre revisar ambos repositorios juntos, construirlos juntos y desplegarlos juntos ... ¡lo que obviamente anula el propósito de separarlos!
La modularidad es una buena propiedad, pero dividir los repositorios no es una herramienta para lograrlo. Como implica el párrafo anterior, puede tener componentes altamente acoplados que se dividen en múltiples bases de código (indeseable), y del mismo modo puede tener componentes altamente modulares dentro de la misma base de código (deseable).
En más de una ocasión, he abogado (con éxito) para que mi equipo combine los repositorios git existentes, porque simplificó el desarrollo y la implementación.