A big lesson learned for me has been that there are multiple ways to do something - not everyone will have the same mental model as me. Going further, the more granular your mental model (I.e the more abstractions), the higher the chance that other teammates’ mental models will differ.
I still like abstractions for testability reasons - perhaps this is the right smell to check for when determining whether to split something up.