::
Grazie per la sollecitissima risposta.
In effetti \small\ttfamily elimina il grassetto dalle keyword del linguaggio.
Ho quindi aggiunto columns=flexible alle opzioni di lstlisting che, dal manuale, dovrebbe anche tentare di mantenere l’incolonnamento se è possibile.