I got many times the request by developers to create objects under the SYS schema and my comment is normally "NO". Here is a nice showcase, why the creation of own objects under the SYS schema can become really dangerous:
conn / as sysdba
select count(*) from dba_objects where status = 'INVALID';
COUNT(*)
----------------
0
-- Now lets create a simple table named SYSTEM under the SYS schema
create table SYS.SYSTEM (id number);
Table created.
-- Now check for invalid objects again.
-- Note: I didnt do anything special after the creation...