My issues come from tons of inconsistent details that stack up. For example, you go to Joe's apartment, you need to go somewhere to kill somebody or do busy work. Joe says he has a gun in the glove department to give to you, that he kept it there for safe keeping.
Problem was I was using my own car, not his. I got into my own car instead of his and he followed.
Vito's dad is said to be a drunk and the he drowned at the docks. You go to work for the mafia dock bosses immediately and it never crosses his mind that these ruthless assholes had something to do with his father's death until the end of the game. The first job you get from these dudes is to beat up other dock workers.
Vito gets made and then you see other made guys a few times afterwards, being made almost changed nothing with the story and trajectory of the story.
You go to drug deal and get the drugs, the other friend besides Joe is carrying the suitcase, you get jumped by fake police goons, the suitcase is no longer being held and disappears. Fast forward to the end of combat, you guys didn't lose the suitcase, the devs didn't bother to have non Joe carrying it around.
There's stuff like this every mission. Being a videogame is a good point when the game itself isn't trying to sell you through immersion or atmosphere. Mafia 2 is all about the environment and atmosphere, and yet tons of story details and points are muddled instantly.