Why does bitcoin uses INIT_PROTO_VERSION (209) for addrme and addryou in the Version Message
CAddress is serialized differently for different purposes. When serialized to disk, the node version and the time are serialized. This is because this information is relevant to the address manager.
However, when serializing to be sent to another node, both the version and the time are omitted because they aren't necessary. These aren't being sent to other nodes, just the IP address and port themselves. You can see that these are skipped for non-disk operations because it is doing if (s.GetType() &amp; SER_DISK) before the READWRITE (which indicates de/serialization) for both nVersion and nTime.
The output you see is because addrMe and addrFrom are local variables which don't need to have the correct version and time. So the version used is the version for the stream which is the minimum protocol version (this is just a safety thing to ensure compatibility). The time is the default minimum time. Since these values don't matter, using these defaults is okay.