Do manual em:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825
CURRENT_USER
O nome do usuário do banco de dados cujos privilégios estão ativos no momento. Isso pode mudar durante a duração de uma sessão para refletir o proprietário de qualquer objeto de direitos do definidor ativo. Quando nenhum objeto de direitos do definidor está ativo, CURRENT_USER retorna o mesmo valor que SESSION_USER. Quando usado diretamente no corpo de uma definição de exibição, retorna o usuário que está executando o cursor que está usando a exibição; não respeita as visualizações usadas no cursor como sendo direitos do definidor.
SESSION_USER
O nome do usuário do banco de dados no logon. Para usuários corporativos, retorna o esquema. Para outros usuários, retorna o nome de usuário do banco de dados. Este valor permanece o mesmo durante toda a sessão.
Portanto, há uma diferença entre SESSION_USER e CURRENT_USER especialmente quando CURRENT_USER é usado em um procedimento armazenado ou função.
Eu tenho que admitir que não sei o que o termo "usuário corporativo" significa.
Btw:há um terceiro:
SESSION_USERID
O identificador do usuário do banco de dados no logon.