There may be some performance tradeoffs since Oracle has the opportunity to pre-compile the view and the resulting execution plan is therefore more static. But, IMHO, the larger issue is where you want to manage this "large" code object. Storing it in a view puts it in the database where it is securable and dependencies are easier to track. If there is a disadvantage to using views, then it simply the extra layer of complexity (one more "moving part"), but the isolation gained from that is also probably the greatest advantage.