UTF-8 は同じ方式でバイト数増やすとしたら6バイトまでで、6バイトにした場合は31bitまでしかビット数がない。
(第一バイトが 1111110x、第二バイト以降が 10xxxxxx なので 1+6*5 = 31)
素直にそのままの値を使うとしたら U+7FFFFFFF が限界になる。

幾らなんでもこんだけありゃ大丈夫だろう。

という考えは甘い。