Что будет, если один из узлов сети будет иметь существенно отличающуюся версию?
Как отреагирует получатель такого сообщения, это надо смотреть исходник. На сегодняшний день протокол Bitcoin определяется его реализацией в оригинальном софте.
Например, можно ли доопределить протокол так, если число отрицательное, то клиент работает в I2P и адрес будет добавлен дополнительным полем?
Думаю, это не понадобится. Узел и так будет знать, из какой сети к нему подключаются.
И непонятно для чего (зачем). ведь получающая нода итак знает свой адрес...
Иногда не знает. Например, если на компе нет глобальных IP-адресов, но входящие соединения пробрасываются через маршрутизатор.