There is a difference between good casting and good acting.
Cumberbatch in Sherlock is good casting, he is a rather irritating self absorbed posh sounding tosspot, very far from being a good actor but spot on for the Sherlock’s persona.
Gary Oldman on the other hand has played many great characters over the years, that can be put down to acting ability.
I think films that Tarantino have a hand in get it right,