I personally believe best practices are for the median. As soon as we generalize/abstract we loose specificity which in term moves away from solving our problem to solving all problems.
Also a real pro can give you code that looks like the code of a beginner the only difference is that the pro knows what is happening inside and can reason about everything that is happening.
And the rule of 3 having a problem 3 times before abstraction is a good baseline.
It's a case by case basis ... what is the difference between premature optimization and abstracting into best practice patterns? In the end it's only time and amount data.
In awareness I am repeating myself over and over again :) anti pattern for what metric? a maintenance anti-pattern can be a performance pattern.
TL;DR; If you take the responsibility, communicate the why to the other stakeholders, they are okay with it, you think you know what you're doing and you can reason about it .... go for it.