While I agree, I think the problem is that coding your little interpreter or grand service framework or what have you is a whole lot more fun than coding business logic. Also, more often than not, business requirements are unclear at the begin of a project, so developers are attempting to anticipate each and everything at the meta-programming level.