L3 è una abbreviazione per indicare il linguaggio interno di LaTeX3, che ora è l’argomento di studio di Enrico, il quale ha già prodotto diversi pacchetti basati su L3; xparse non è ufficialmente uno di quelli, perché risulta prodotto dal LaTeX3 Team, ma mi pare che Enrico ne faccia parte, almeno collateralmente. xpatch invece è proprio di Enrico.
In sostanza si tratta di pacchetti epr usare il nuovo linguaggio rendene abbastanza trasparente le complicazioni interne.
Comunque va benissimo.
Invece il fatto che \index{\MakeUppercase{b}} si ocmporti diversamente da \index{B} è abbastanza ovvio; il primo viene messo fra i simboli perché manca una chiave per mettere in ordine alfabetico, cioè manca @ e la parte che viene prima; esso si comporterebbe come \index{B} se fosse scritto \index{B@\MakeUppercase{b}}.