É que o primeiro só modifica pro __programa__ (e na verdade não é o firefox que te interessa, mas o java ou sei lá o quê), enquanto o segundo altera pra sessão (tudo aberto depois do comando, usando aquele shell). Você pode transformar isso em um script, e configurar o lançador pra usá-lo.