I really wanted to be a programming-language researcher. Actually, that's what I was for several years of my extended Ph.D. program at the University of Arizona, where I worked for the late Ralph Grizwold who was quite famous in that field. However, Ralph and I had a falling out, or rather Ralph took a dislike to me for reasons that I never understood (and now, I suppose, never will), and so I moved on to language implementation, working for Saumya Debray. Language implementation was very cool also, but my first love was always language theory and design. After I got my Ph.D., I decided not to pursue an academic position for several reasons: first I was a poor teacher (which would have been a minor nit at a good research department). Second, I'd heard that Ralph was saying uncomplimentary things about me to others in the field and since he was well-respected and I was unknown, I knew that was a fight that I couldn't win. And third, it took me ten years to get my degree, which doesn't look good on a CV.
Also, of course, there is a trade-off between the elegance of your abstractions and the useability of the language. As abstractions get more concise and powerful, they get harder to use by average programmers.