This crossed my mind as well -- you start with a specific problem to solve, you dig into building a solution... and realize that whoa, with only a few tweaks this could be useful for this
whole range of related problems...
But the compromises add up one after another, and by the time the general solution is built (with an immense theoretical target market), it's lost its heart. The people with the original problem won't be interested any more (because it doesn't speak to them anymore).
It's related to the problem of implementing every feature and permutation that users request ("no problem; we'll add an option for that in the settings!"), until the elegant solution becomes an unusable monster.
It's hard to say "no" to an addition that clearly adds value, but if you're aiming for a sharply-defined target, you've got 1 degree of "yes" and 364 degrees of "no".