Le recourant, qui obtient partiellement gain de cause avec l'assistance d'un mandataire professionnel, a droit à des dépens à la charge du canton de Genève (cf. art. 68 al. 1 LTF); vu l'admission du recours sur un point essentiel, il n'y a pas lieu de réduire cette indemnité. Pour ce même motif, il ne sera pas perçu de frais judiciaires (art. 66 al. 4 LTF). La requête d'assistance judiciaire doit dès lors être déclarée sans objet. Par ces motifs, le Tribunal fédéral prononce :