Why waste, arguably, the biggest rub one could receive on an already made man such as John Cena? The only way that I could see that one working is if Cena was to become the monster heel that everyone wants him to become. The reason I don't want to see a face Cena end the Streak is because if a face Cena ends the Streak, or any face for that matter, the Streak would die.
There are a number of reasons I can think of to have Cena end the streak.
1. The only way, in my opinion, the streak should end is if, like Sally suggested, it's to a legend. The problem with giving a superstar the "rub" of ending the streak is that you don't know how it will play out in the future. There was talk at one point of having Ted DiBiase face Undertaker, and end the streak, several years ago. How foolish would WWE look if that had happened? Pretty damn. But giving that rub to a superstar like Cena is one where you know the win won't be wasted.
2. The streak would be ended by the best. Cena is the top guy in the company, and that's not going to change until he retires. If Undertaker is going to have the streak ended, and retire, why not have it be by the best? Undertaker is booked as somewhat mythical in his ability to win at Wrestlemania, and for the streak to end believably, it needs to be by someone legendary. The only person on the roster who fits that description is Cena. Punk may someday reach that level, but he sure as hell isn't there yet.
3. It would make a win over Cena afterwards all the more special. Contrary to popular opinion, Cena's lost alot over the past 2 years, effectively shredding the "Superman" notion. But after beating Undertaker, and ending the most prestigious(however erroneous this may be) thing in sports entertainment, anyone who beat Cena from that point on would get one hell of a rub. Especially if he were to beat Rock and Undertaker in back to back years at Wrestlemania. As for Undertaker, he's a part-time, once a year performer. Having him lose his final match at Wrestlemania, against John Cena, wouldn't tarnish the previous 20 years of the streak whatsoever.
CM Punk, on the other hand, would bring it up just about every time he would cut a promo.
And it would get old and monotonous very quickly, as did his calling himself straight-edge, declaring himself the best in the world, and demanding respect did. Which is why he's had to, as Cena's pointed out, had to re-invent himself so many times. This would be no different.
Punk could use the victory to make his career even more successful then it is now. It would make him an even bigger heel than what he is now. What would Cena have to gain from the victory?
It would be the defining point of Cena's career, the same as it would Punk's. This is a blanket statement to be made, as it would make anyone's career more successful then it is now.
I don't disagree that it would benefit Punk. To address the initial question, the longer Undertaker continues to wrestle, it almost becomes imperative that the streak ends. As a once a year performer, even at Wrestlemania, having Undertaker go over full-time wrestlers stretches things, realistically. I wouldn't have a problem with Undertaker losing the streak to a CM Punk, but it needs to be in Undertaker's last match if that's the case. Undertaker going to 20-1 and continuing to wrestle at 'Mania just doesn't have the draw, the one guaranteed draw, that 20-0 does.