Las uniones externas no funcionan "como se esperaba" en ese caso porque le ha dicho explícitamente a Oracle que solo quiere datos si ese criterio en esa tabla coincide. En ese escenario, la unión externa se vuelve inútil.
Una solución
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 = ?)
)
[Editar] Si espera varias filas de una subselección, puede agregar ROWNUM =1 a cada cláusula where O usar un agregado como MAX o MIN. Esto, por supuesto, puede no ser la mejor solución para todos los casos.
[Editar] Por comentario,
(SELECT account_type_standard_seq.nextval FROM DUAL),
puede ser solo
account_type_standard_seq.nextval,