current schema is the effective user id under which you are currently running, the privilege domain, yes it varies from USER:
ops$tkyte@ORA9IR2> create or replace procedure show_user
2 as
3 begin
4 for x in ( select SYS_CONTEXT('USERENV','CURRENT_SCHEMA') u1, user u2
5 from dual )
6 loop
7 dbms_output.put_line( x.u1 || ', ' || x.u2 );
8 end loop;
9 end;
10 /
Procedure created.
ops$tkyte@ORA9IR2> grant execute on show_user to scott;
Grant succeeded.
ops$tkyte@ORA9IR2> @connect scott/tiger
ops$tkyte@ORA9IR2> set termout off
scott@ORA9IR2> set termout on
scott@ORA9IR2> exec ops$tkyte.show_user
OPS$TKYTE, SCOTT
PL/SQL procedure successfully completed.