|go ahead... be a heretic|
Well, I wouldn't call this unpopular; I'd call it the natural evolution of a programmer learning to be pragmatic. The Three Virtues can be applied to any programming language, discipline, or environment. (They can even be applied to other forms of creative problem-solving.) After all, you just described Laziness in action.
Now, that's not to say you can't think of them and treat them as programs. That's just discipline. My point being that you should think of them as whatever you want, but use terminology appropriate for your audience. There are few things more annoying (to me, at any rate) than folks who insist you adopt their mental model about something.
I realize you didn't do that and I'm not saying you do or did. I'm just pointing out that no matter what you personally think about something, you need to communicate with others that have different opinions and experiences. All too often, many holding strong ideas and opinions are not receptive to other points of view. I believe it's far wiser to hold your ideas and to allow others to hold theirs. (Who knows? They just might be onto something.) Thus, it seems wise to allow others to develop their own opinions and to adapt to those opinions as needed. Educate as needed; ignore as necessary. But never give up hope that others will learn from your successes and approaches. Similarly, you shouldn't be afraid to grow from someone else's ideas.
Speaking of learning from your successes, have you given thought to uploading selected bits from your library? Not only would you get feedback, but it's likely that others would find them useful, educational, and interesting. Perhaps not, but it shouldn't hurt.
And, finally, I do agree that there are far fewer "one-off's" than most people realize. Heck, I've even take code used to learn the behavior of a given feature and plopped it straight into a production app. You should always give a certain amount of thought toward the possibility of reuse. Don't carry it too far, but at least consider it.