Please help me understand if apex code really runs in a system mode or is there a technical glitch, in our scenario, we are using multiple license types based on end user need, we have almost 3k 'Full Salesforce License' & 1K 'Force.com App Subscription' license.
Our Opportunity object is fully customized and not using commonly used sales features like "Sales Quota", "Forecasting", "Opportunity Product" etc. both, Opportunity detail and edit page are visualforce pages.
We did a POC and found that user with 'Force.com App Subscription' license can also read & update Opportunity object via apex, infact we went one step ahead and tested that user with 'Chatter Free' license also have the capability to read and update Opportunity.
If this is true why would anyone with this scenario will spend dollars every year maintaining 3k users with 'Full Salesforce License' when I can achieve everything with little bit more customization than we have today and converting all users to either 'Force.com App Subscription' or 'Chatter Free' license