When talking about abstractions to IT architects I am naturally always reminded on the inner-platform-effect that is defined as:’ The inner-platform effect is the tendency of software architects to create a system so customisable as to become a replica, and often a poor replica, of the software development platform they are using.“
So layers will need to simplify, if not then they actually contradict their goal. This goal however needs to be verified by other architects outside of the area of work, as just to do abstraction to enable different role players to effectively work at various levels of abstraction and to support the portability of software artefacts is not good in itself as we otherwise often end up with the support of artefacts, but without the ability of a small team to implement changes in the business as usual scenarios.
On the other hand we also should withstand the tendency not to abstract and only go with the requirements per se, as we otherwise will also create an non supportable model, as any changes will take as much as a new implementation. As such the best level of abstraction is that of the maximum of simplicity that other architects and support staff can understand and will accept.