You missed the quintessential "I can only act one way but people still think I'm amazing" actor. Robert DeNiro. Most overrated actor of all time.
Taxi Driver? Raging Bull? God Father 2? All the characters are very different, and he conveys emotions and subtleties extremely well in all of them. He's a great actor, the problem was he got old and stopped thinking he needed direction--and that's when his acting became terrible.
I think the problem is a lot of people judge an actor by the different roles he can play--but you also have to judge them on how well they can play the roles that suit them (There is such a thing as putting even great actors in the wrong roles). Does Dicaprio usually play one type of character? Sure. But he plays that kind of character extremely well. He conveys emotion and invites sympathy from the audience, those two things are
reallythe measure of an actor. Any actor that can do that, in a single role, is a great actor. Hell, look at Morgan Freeman, he has not played anything but Morgan Freeman--but he makes the movies he is in really good, because he can connect the character with the audience. Was there anything different between Morgan Freeman in Driving Miss Daisy and Million Dollar Baby? Nope. But he brought an emotional core to both movies.
In short, a lot of people confuse depth, with breadth. I'd much prefer an actor who can do one type of role *exceptionally* well, then an actor who can swap characters and do everything mediocre. Now, there are a few actors that can do that--Gary Oldman, for example, is one. But that's not what makes him great, what makes him great is that he can bind the audience to the character. (And yes, it's pretty freaking difficult to do that--watch a bunch of B movies, it's not a skill a lot of people posses.)