Citation: 6B_248/2019 E. 3

Il découle de ce qui précède que le recours doit être partiellement admis (cf. consid. 2 supra), l'arrêt attaqué annulé et la cause renvoyée à la cour cantonale pour nouvelle décision. Pour le reste, il doit être rejeté (cf. consid. 1 supra). Au regard de la nature procédurale du vice examiné, et dès lors que le Tribunal fédéral n'a pas traité la cause sur le fond, ne préjugeant ainsi pas de l'issue de la cause, il peut être procédé au renvoi sans ordonner préalablement un échange d'écritures (cf. ATF 133 IV 293 consid. 3.4.2 p. 296; arrêt 6B_1024/2016 du 17 novembre 2017 consid. 3). Le recourant supporte des frais réduits en raison de l'issue de la procédure et de sa situation financière (art. 65 al. 2 et 66 al. 1 LTF). Il peut prétendre à des dépens réduits à la charge du canton de Vaud (art. 68 al. 1 LTF). Sa demande d'assistance judiciaire est sans objet dans la mesure où il a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chance de succès s'agissant des aspects sur lesquels il a succombé (art. 64 al. 1 LTF). Par ces motifs, le Tribunal fédéral prononce :