Hi,
when you do Where used for S_GUI object you will see that it's not used on many places. So you could introduce new authorization object with more granular access control (e.g. transaction code) and then use enhancement framework to add check for this new object everywhere where S_GUI is checked.
Cheers