It's a permanent balance. I have to "manage" (but I still am a main contributor) a small team in a big investment bank with angry busy trader-users, irrational "global" management in other continent thinking we're all dumbasses in Asia, and people on loaned rotation.
So, like your colleague, I try to strategize delivery. I would never tell a guy not to work on a genius idea that could change the entire paradigm, in fact I let 3 of my guys do just that for the last 3 months, together, sometimes alone. But they either not deliver, or very slowly, or sketchily (not working as well as thought).
So what I do a lot is a compromise. I force them, despite their complaint I don't care enough about the big picture of their non-delivering work, to take smaller issues every week. 1 or 2, give a candy to the user, and do your stuff then.
It worked incredibly well: while they've delivered absolutely nothing of value in their own initiatives yet (but I still think they can, it's just very long term), the users are delighted by a constant stream of little innovations and we've been recently identified as one of the most productive team.
Meanwhile, the team next to us, algo programmers in C++, can take 2 months to enhance an error message. Because they're all revolutionizing the system and have no time for basic human needs. They don't know yet, but they're gone soon. The budget people found there's a new model of delivery that could work, I wonder which one ;)