1. They make it easier for consultancies to templatize what they do, which:
- keeps their employees tied to the hard earned knowledge
- keeps their clients tied to their services
At least though you know that those patterns are (usually) common and battle tested (or, at least, will be battle tested - cough cough ash), and unlike a bigtech "their problems are likely to be your problems".
I have heard this claim so many times but it is easy to prove it wrong given how much we focus on documentation and understandability around Elixir and main libs. I have had clients asking me questions and I would answer it by improving the docs or writing a guide, committing it to the repo, and then asking the client for feedback. Half of the Ecto guides were written like this.
It is not about keeping clients at all. It is about having a great on-boarding (and beyond) experience.
I'm not saying that these libraries are deliberately designed to be malicious. I'm saying the incentives don't always align. And some of that has to creep into the mindset of some of the design.
Also I wouldn't level the "crept into the mindset" accusation at Phoenix core or ecto or absinthe even, because for the most part they conform to expected terminologies.