Function Block programming is, IMO, best to display flow of code if you have a good library of process blocks (like Valves, motors, etc...).
This then allows you to see the inputs leading to the control block and the respective outputs.
Edit: in other words, it reduces the cross referencing a whole lot.