Hi,
Don't see the user specified any edit to the value. It was more about getting the default one. Even the method that you state can fetch wrong value if you know how it is edited.
Check the code below:
DATA language TYPE sylangu VALUE 'S'.
WRITE: / sy-langu.
sy-langu = language.
WRITE: / sy-langu.
SET LOCALE LANGUAGE 'S'.
sy-langu = cl_abap_syst=>get_language( ).
WRITE: / sy-langu.
The output is:
Cheers,
Arindam