Morgan Freeman's character Sam was at first not blind at all. After hearing from a piano school for the blind (with a very high reputation, and where the scholars developed their hearing), Freeman had the idea of making his character blind because like this it is easier for Sam to "see" the child in Jet Li's character, and not the brutal killer.
Bob Hoskins actually cut Jet Li's hair at the start of the movie, as his character would have done it in the movie.
The role of Sam was written for Morgan Freeman. He was the first and only choice to play the character.
During a break between set-ups, Bob Hoskins went to the Starbucks at St George's Cross for a coffee accompanied by an Assistant Location Manager. He was wearing his character's white suit covered in fake blood. Customers recognized him and he stood for 10 minutes signing autographs before being called back to set. The Starbucks staff gave him and the crew member their coffees for free.