You shouldn't be afraid to consider breaking the rules, if you have thought about the problem, and when you feel it's an appropriate thing to do.
When you begin your career as a programmer, following a standard set of rules is likely appropriate. But as you progress, your skills become stronger, and you start to develop something which is lacking in the beginner - a sense of taste. This sense of taste, this wisdom which you've acquired through real experience, is what really guides a mature programmer. In essence, wisdom transcends rules.
Barry Schwartz has an interesting TED talk
on this general idea, which is worth listening to.