Uhm... Dopo alcuni test credo di aver capito l'inghippo.
Nel caso del pulsante senza icona l'allineamento all'interno del div viene risolto sulla sua baseline, mentre quando c'è l'icona l'allineamento avviene rispetto alla base dell'elemento più alto quindi nel mio caso l'icona. Pertanto la baseline del secondo pulsante si allinea alla base dell'icona del primo e del terzo pulsante.
Non so se mi sono spiegato.
Convertendo il pulsante ad inline-block il testo torna, giustamente, allineato alla baseline (ma l'allineamento verticale dell'icona svacca, anche con "vertical-align: middle").