As junções externas não funcionam "como esperado" nesse caso porque você disse explicitamente ao Oracle que deseja apenas dados se os critérios dessa tabela corresponderem. Nesse cenário, a junção externa se torna inútil.
Uma solução alternativa
INSERT INTO account_type_standard
(account_type_Standard_id, tax_status_id, recipient_id)
VALUES(
(SELECT account_type_standard_seq.nextval FROM DUAL),
(SELECT tax_status_id FROM tax_status WHERE tax_status_code = ?),
(SELECT recipient_id FROM recipient WHERE recipient_code = ?)
)
[Edit]Se você espera várias linhas de uma subseleção, pode adicionar ROWNUM=1 a cada cláusula where OU usar um agregado como MAX ou MIN. Isso, obviamente, pode não ser a melhor solução para todos os casos.
[Editar] Por comentário,
(SELECT account_type_standard_seq.nextval FROM DUAL),
pode ser apenas
account_type_standard_seq.nextval,