1) The weights will be important only in the crowding sort of NSGA2. For example, if you have an objective spanning over a range of 1000 and an other over a range of 1, the crowding calculation won't be similar for both objectives. The weighting should be use to scale those values.
2) No, most evolutionary algorithms work only by using the lower than operator. One frequent exception though is the roulette wheel.
As for your third question, its been too long since I've had a good look at this part of the code. Therefore, I cannot answer right away. But I know that the crowding distance uses the weights the right way.
Cheers,
François-Michel