It's a tough position to be in at times. At the end of the day, if you supply equipment, commission it, and it's accepted by the end user as meeting the scope then there should be minimal action taken by the plant in the future. So, maintenance pokes around in the code every now and then for troubleshooting and the added time it takes them to sort it out is dirt cheap in comparison for an OEM/integrator to constantly "change" their code development to meet the needs of cheap labor on the customer end.
When a plant takes ownership, and begins to modify/improve/advance equipment w/o bringing the original OEM/integrator back then it's the cost of playing the game. Some OEM/integrators are no longer around, or the plant thinks they are getting ripped off(hell if they ever think they aren't)..if the plant doesn't see value in automation skills from the original OEM/integrator you'll never give them a product they will be satisfied with. Granted, some OEM/integrators produce poor products, but very likely that was the lowest bidder. "Its expensive to be cheap".
For my company, we have a great standard (best I've gotten to work with in my short career), but it's very complex, has lot of features already built in (much of which is background noise, it's proven to work and simply supports the main sequencing logic). It can be more than required for small systems but it's extremely scalable to large systems. I feel confident that if I can sequence the process, I can use our standard to program it, but it's a beast to pick up yet simple to trouble shoot if at minimum you understand the sequencing.
To be efficient we have standard excel documents that can auto-generate base code, base tags, descriptions, mapping logic, AOI routines, all kinds of stuff to make development easier and much more painless. Unfortunately, those are development tools we have created for internal use, and without those tools it's harder for our end-users to make substantial changes. But makes life for us 100 times easier. It is a balancing act, some customers catch on others don't. Again, if the plant isn't vested in qualified controls techs/engineers it's not the OEM/integrators problem.
I'm commissioning a project right now, very large project and the plant has no interest in improving the skill set of their maintenance team. They are used to PLC5 controllers and PanelView 550s. We're installing a monster upgrade using ControlLogix/Batching/Blending/Reporting/SCADA systems, their plant knowledge is out dated by 20 years and you simply cannot afford to program for the end user in situations like this.