To me there's three points in reinventing a wheel.
The main point is if the wheel is one that has been developed badly by earlier inventors (where the original inventor gave us the square wheel, and some later engineer reasoned that, since the corners were a problem, a triangular wheel would be better... and it formed a trend. (cough XML cough cough)
A second point is if the wheel doesn't fit. EG, if I'm developing an artistic-license project and someone has invented a perfectly good GPL wheel, there's not a darn thing wrong with it except that you can't thread a GPL wheel onto the end of an Artistic-license axle. Kind of like SAE versus Metric. So I'll cheerfully go and invent an Artistic-license wheel and use that instead.
The third point is, yes, I do in fact just plain enjoy it. But that's sort of mixed up with something else. For me anyway, working on some things that don't really need to be worked on -- reinventing wheels -- is also a kind of a surface-brain activity I do while pondering deeper design problems in the same program, or as a re-familiarization exercise when I'm getting back into a project after a hiatus. I learn and remember things about the code while working on 'wheel reinvention' that help clarity to emerge as to how other parts of the code ought to be designed. And as often as not I find that things I've done since the code was first written make a better version of it easier and clearer.