Cena is essentially baby face Sting from late 80's and early 90's.
Overly likable, good guy in real life, work ethic through the roof, can put on a good match...
Back then though, people liked the wholesome baby faces with top end charisma.
Now, we've been through ECW, the nWo, and the Attitude Era where fans were conditioned to love good heels, love guys in the gray, and be generally ambivalent to the good guys...the heels and the guys in the gray have so much more depth to their character than the black and white good guys.
I think Cena gets shit on far too much...listen, he's not my cup of tea, but I can't boo Cena...just as a wrestling fan, boo'ing Cena is pretty disrespectful, just like cheering a heel is disrespectful. If you want to appreciate a heel or face...you give them their appropriate cheer/boo. If you don't...just sit on your hands.
Ever since the One Night Stand match against RVD, I've seen Cena in a different light. Just a genuine good dude, will do anything for the business, will work his ass off with the stiffest stiff (most of the time), doesn't take himself seriously at all...he's not super talented in the ring, and I don't like his character, but I'm not going to boo him and hate on'em. Kids and ladies love the guy. Easily one of the biggest sellers of merch. Good for him.