privileges granted through a role are not visible from stored procedures, functions, packages, etc.

if they are granted directly then they are visible from them.

It's a silly rule that Oracle has given us (IMHO), but we have to live with it.