I actually think Cameron Diaz's character should have been excluded from this movie entirely. The only purpose she serves in the entire plot is to make Johnny jealous so that he eventually betrays Amsterdam.
But Johnny could have betrayed Amsterdam for other reasons: maybe he's just jealous Bill likes Amsterdam more, maybe he felt it was some kind of religious moral dilemma to warn him (which would fit with the theme of the movie), perhaps a greater loyalty to Bill, maybe he thought if he warned Bill he would get promoted up the ranks of the gangs, etc.
Cameron Diaz's character served no purpose other than the obligatory love interest.
In any case, I don't think Marion Cotillard would be the right fit. Like you said, she's obviously French (can she pull off an early American-Irish accent?). The character made more sense to be of Irish heritage. Maybe another actress. I don't know.
I wouldn't put the blame entirely on Diaz's acting. Her character just sucks.
The character made more sense to be of Irish heritage.
That's very true. Even today immigrant communities can be very insular. I'm not saying there wasn't any interaction between the various nationalities but 'sticking to your own kind' was a very prevalent occurrence.
I've had a lot of sobering thoughts in my time Del Boy, it's them that started me drinking! reply share
Marion Cotillard has played American ("Public Enemies"), Italian ("Nine"), English ("Lady Grey London") and Scottish ("Macbeth") and managed to do them all without betraying a French accent. She's pretty versatile.