Essa ideia é extremamente interessante, esses dias mesmo eu estive me conectando a uma API e tendo dificuldades para lidar com os envios e retornos no Typescript que forma efetiva. A sua sugestão de "filtrar" a tipagem para determinados "sub-types" é bem interessante para lidar com diversas opções além da conexão API, como a possibilidade de uma interface global que você poderia coletar as tipagens de forma unitaria com o "Pick" da sua ideia ou algo do tipo.
Mas na minha opinião uma forma de haver uma "ponte" de tipagem entre back-end e front-end seria algo ainda mais preciso e dinamico de se lidar do que o espelhamento da interface ambas as pontas. Claro, eu também não sei como seria possivel fazer uma conexão efetiva dos dois ambientes distintos para que os dois tivessem acesso a mesma tipagem e fizesse com que, por exemplo, quando o back alterasse as tipagens de retorno o front já indetificasse isso logo após um primeiro fetch ou algo do tipo.
Ah e sim, talvez já tenha uma forma de fazer essa "Ponte" de tipagem entre as pontas e eu não saiba, então se alguém souber de algo, eu adoraria saber mais! :)