DiCaprio was miscast, imho
Cillian Murphy should've played DiCaprio's character. DiCaprio is an excellent actor. That's not the issue. It's just, you see DiCaprio more than you do the character.
Murphy would've been the perfect choice. He was the right age, Irish, an excellent actor with heaps of charisma. Personally, I think it would've made the whole film more interesting.
Diaz was also miscast. Have yet to figure out her [hypothetical] replacement..
"He's about as much use as a marzipan dildo.