Olá,
Achei interessante o estilo PDO::FETCH_PROPS_LATE, porém fique ná dúvida sobre seu funcionamento.
Como o próprio nome já diz, a propridades são carregadas depois, sendo que a primeira ação é chamar o construtor.
A minha dúvida é: como garantir que ele chame o construtor já com as propridades retornadas, tendo como resultado o objeto carregado corretamente conforme construtor definido na classe.
Algumas sugestões que encontrei foi setar valores default para as propriedades, pois depois ele vai sobrescrever esses valores default, mas não me pareceu uito interessante.