Your assumption is that having a programming layer in a CRM is only for big businesses. But that's not true at all.
I read it to mean that "A programming layer in a CRM is only for those businesses that can afford a programmer", which, TBH, are only big businesses.
Which is why small companies may not be able to afford making Salesforce fir their needs exactly - the cost to hire consultants to come in and panel-beat the system to fit is higher than the cost of continuing with spreadsheets.
That just is not the case. My first job was working as a solo Salesforce admin/dev for a company of < 150 employees and we made extensive and valuable use of the Apex layer.
Your assumptions are inaccurate, and that is leading you to inaccurate conclusions.
There's definitely a gradient here. If you are good at juggling sales cycles, you can close "small enterprise" deals. And if you have a good programming layer, instead of going through a full dev process for each thing, you get "integrators" working on things.
The advantage here: once the design is done, you're writing a handful of 10-line scripts. You can have a design meeting, have a person sit down for an hour, and ship out a thing that closes a deal. And the design can be done for _just_ the company's needs instead of a full flow. You can charge an "integration fee" to the customer in this case as well.
A programming layer lets you remove a huge level of tension that comes with B2B sales: juggling specific client needs with your product needs.
You don't want to go through enterprise sales cycles when you are just starting your company.