I would say that if you have a problem that comes up as a one-off-type problem, code a one-off-type solution. But, save that solution somewhere. Maybe, you play with it and hack it into a more general solution. Maybe not. But, you save it in your personal scripts directory with some notes as to what it was used for.
Six months later, someone will come up and ask for a slight modification. Then, when there's two times you want to run it, make it a generic mini-application.
Once is a one-off ... twice is a mini-app ... three times is a solution. :-)