Eu partilho a intuição e incerteza do Artefacto, mas vou apresentar outro aspeto da questão. Repara neste exemplo diferente:
(a) Vi ao longe um homem da tua estatura. Até poderias ser tu.
Esta frase é absolutamente normal, e tu é indubitavelmente o sujeito, porque concorda com poderias. O predicativo do sujeito está omisso. A frase completa seria “poderias ser tu o tal homem” = “tu poderias ser o tal homem”. Então do mesmo modo, na tua frase,
(b) Vi um homem de cabelos cacheados. Me lembrou João. Até poderia ser ele
“Até poderia ser ele” está absolutamente correto, e ele pode ser interpretado como sujeito de poderia ser (tal como tu na minha frase), com o predicativo também omisso: “poderia ser ele [João] o tal homem” = “ele [João] poderia ser o tal homem”. Sendo ele o sujeito, não pode ser substituído por o/lo.
Agora a questão é se na tua frase ele pode também ser o predicativo, estando o sujeito omisso. Neste caso a frase seria “[o tal homem] poderia ser ele [João]”, sendo o tal homem sujeito, caso em que seria em princípio possível (mas não necessário) substituir ser ele por sê-lo. O Artefacto analisou esta questão, e eu não me vou meter nela.
Há uma outra possibilidade, mas não me parece nada natural, que é interpretar a tua frase como “[João] até poderia ser ele [o tal homem]”. Ou seja, admitiríamos que o sujeito de poderia ser é o João mas está omisso e que ele é o predicativo e se refere a “o tal homem”. Nesse caso poderias em princípio dizer poderia sê-lo, ou seja, “[João] poderia sê-lo [o tal homem]” (seria como dizer na minha frase, “poderias sê-lo [o tal homem]”). Mas isto não me parece nada natural, porque eu instintivamente interpreto ele como referindo o João.