Some good points and hopefully some good answers I can give as i read comments.
CAN - yes it is easy to think you can just hook everything together and it is. The problem is there is no software to to separate all the chatter (it is called the stack same as ethernet) to know who is talking and who is listening and deal with collisions and priority and so on. None of which is written. Ethernet comes that way with a stack and with a teensy, it already has full ethernet so you plug in a cable and voila you have a network.
V4 was simple because it was simple. V5 allowed running multiple applications on the same machine, forced accurate timing from your setup, where v4 didn’t care if you thought you 10 hz gps but actually ran at 7 hz. We all know that once you fix the problems in v5 - it just works.
As a second GPS is now added for tool steering, writing more and more com ports was not going to be the answer. That is the biggest difference with udp, you just add. Whereas with serial, every function needs a full serial port written, a way to connect it, see what com port is connected etc. Then that serial port needs to be added thru the whole program and sent info it and only it really needs.
Serial is like having a party where all your guests are in separate rooms and the host goes from room to room and if another guest shows up you need to make up another room Whereas with udp is everyone is in the same room visiting and new people can just enter and start chatting.