When you obtain the right to EXECUTE stored procedure, you do not obtain the right to modify it automatically. You may also grant SELECT ANY TABLE or explicit grant select on dba_source to allow somebody view source of SP without the right to execute or modify it.
Regards, Dima