Don't misunderstand me, let me make myself clear... I'm so in favor of optimized code and mostly (un)/intentionally break/fuse/remix design principles for optimized code structure.
Maximum %age of developers follow the standard principles and popular practices as a template for all of their work. It's pretty good to follow such development pattern as defining best practices specific to each and every need will highly increase redundancy and raise credibility considerations.
So, follow the most suitable design patterns... use the most efficient development platform...
and make it highly modular and universally reusable stubs...
But everything is good AT A STAGE and TO A LIMIT
[+] AT A STAGE and TO A LIMIT
If you are at initiation of developing a properly designed logic with code stubs that even have a remote possibility of being reused... should go for a generalized code.
But whats the use of spending your time in writing linked-generalized-stubs, when neither they have any chance of being used in another module, nor even being needed again in same module till any major change in requirements is there.
describing it my way, in one bad example:
Don't go RegExp matching variable, when you just have one value to match... and might need to match another value in far future.