A resposta é bem simples: você não pode responder a vários eventos se o trabalho já estiver sendo executado em nome de qualquer uma dessas condições . O Upstart não grava e reproduz eventos. Se o seu trabalho estiver sendo executado devido ao evento A e o evento A for iniciado, ocorrerá o evento B, ao qual o mesmo trabalho também poderá responder. Não há fila que salve o evento B e o reproduza em todos os trabalhos que estavam sendo executados anteriormente para avaliar o dito evento novamente. Afinal de contas, isso é init, e o objetivo dos scripts init geralmente é executar uma vez.
O bootchart mostrará prontamente quais sinais são emitidos simultaneamente.
Você mesmo pode verificar isso configurando seu trabalho para responder a um evento, fazendo com que ele faça algo simples, como sleep 30s, e enquanto o job estiver rodando, emita outro evento (initctl emit foo). Quando o trabalho terminar a primeira execução, ele não será executado novamente.
"Para resumir: gostaria que o job 4 fosse executado no evento local-filesystems, E no evento net-device-added (desde que local_filesystems também tivesse ocorrido), E no evento adicionado com dispositivo bluetooth (desde que tenha ocorrido local_filesystems). Como faço isso acontecer? "
link
Realiza este tipo de execução condicional claramente. Isso não significa, porém, que será executado mais de uma vez. Você pode reconsiderar a solução deste problema desta maneira para começar.