The 63-byte limit is because in the DNS protocol, labels stored as <length><label>
, length is a single byte, but two high bits of the length field reserved for something else (compression) thus leaving 6 bits for the length itself, 2^6=64 possible values - 0..63.
System can not support unlimited label length. It's not an artificial limit, it's interwoven into the protocol.