Sounds like job protecting measure more than anything that really has any function. What is your view on subject?
We do have legitimate memory issues on the older PLC5s. If we didn't have the indirecting on those, the programming wouldn't fit onto the PLC at this point in time. Then again, I would have programmed the system a bit differently.
However the PLCs are for biopharma, and everything is GMP and validated / qualified. Having to upgrade a PLC is a huge issue because of the documentation, testing, and downtime involved, even if it is a simple as getting more memory (sometimes I feel like I spend more time updating specs, writing documents, and talking about things than I do actually doing any real work).
In any case, the PLC5s are like 10 years old. I am sure there was lots of discussion about how to develop a programming architecture that was flexible and would last a long time. From what I understand from the other engineers who were around at the time, they never thought at the time they would run out of memory. Whoops.
In some cases I do think (contractors in particular?) people might be motivated to make something overly complex for job security, but I don't think this particular case was driven by such motives.
The complexity was likely a result of trying to make something generic and in the interest of saving space. I think there may have been an easier way to do it but I wasn't there at the time...
All that said, I have been one of the engineers involved in upgrading systems to a ControlLogix platform. The difference between the two versions of our code are night and day. A lot of out programs are designed to be S88 aware / compliant and SFCs are really great in this regard.