@Priscilla_Matos
Funciona da seguinte forma, quando um objeto é acessado sem especificar o owner o Oracle entende que o objeto é do próprio owner. Quando o USER1 acessa por exemplo a procedure atualizaValor da seguinte forma:
BEGIN
atualizaValor;
END;
O Oracle procedure dentro do schema USER1 a procedure atualizaValor, mas como não existe, é apresentado o erro.
Para o USER1 acessar a procedure atualizaValor que é do MASTER, é necessário especificar o owner da seguinte forma:
BEGIN
MASTER.atualizaValor;
END;
Pelo que percebi a forma utilizada para especificar o owner foi a criação do SYNONYM. Respondendo a pergunta inicial, realmente é necessário especificar o owner em qualquer ocasião.
Só uma observação, quando se cria SYNONYM público, todos os usuários terão acesso a esse SYNONYM, o ideal é criar o SYNONYM apenas no usuário USER1.