Es curioso cómo escribir una pregunta te hace pensar y, de hecho, ayuda mucho a imaginar una solución para tu propio problema.
Pude resolver este problema simplemente agregando la parte de paginación de la consulta a una subconsulta de mi consulta principal, en lugar de a la consulta principal en sí.
Por ejemplo, en lugar de hacer:
SELECT client.id, client.name ...
FROM clients AS client
LEFT JOIN client_account_types AS cat ON client.id = cat.client_id
FULL JOIN account_types AS at ON cat.account_type_id = at.id
ORDER BY client.name ASC
LIMIT 10 OFFSET 30;
Estoy haciendo esto:
SELECT client.id, client.name ...
FROM (
SELECT * FROM clients
ORDER BY name ASC
LIMIT 10 OFFSET 0
) AS client
LEFT JOIN client_account_types AS cat ON client.id = cat.client_id
FULL JOIN account_types AS at ON cat.account_type_id = at.id;
Espero que esto también ayude a otras personas.