Best Practices

Anyway I see where you're coming from, but avoid is not that strong in this context. It simply means that it's not a good practice, but you can do it if you have good reasons (not overcomplicating things). 

I try to look at these guides from the perspective of a junior dev that is trying to figure out what to do in a moment of doubt. A pro can always break "avoid" rules when there are good reasons.