Add some beautiful bridge-rails (wood, iron, stone-brick) that can be placed on water, and change default Big-electric-pole and rail-signals to be placeable on water.
No. Upgrade planner has to need to success all replacement.
Normal rail cannot place on water - it means you can not register normal-rail <-> bridge-rail replacement to the planner.
As a script, only those with the same collision_mask can be registered in the planner.
For everyone looking for this problem, the mod display by Bishop will crash the game when used to change rail from wood to normal (didn't try with everything else) directly in the world. BUT this mod also provide the possibility to upgrade blueprint. And it works perfectly fine. I was finally able to upgrade my cityblock blueprint to normal rail (1.3k wood each block was not sustainable)