日付が9957年6月26日までしか数えられない?

バージョン: 5.1.0.3の Calcを使っています。

日付が不明な場合は9999年1月1日と入力してある紙データをCalcで整理していて困っています。
9999年1月1日を覚えてくれません。一旦保存して開き直すと9999年12月31日になってしまいます。

いろいろ試してみたところ9957年6月26日を超えると9999年12月31日になってしまうようです。
これは仕様なのでしょうか?

試したことは、
各セルに数値で2942936,2942937,2942938,2942939,2942940と入力してから、それらのセルの書式設定を日付に変更すると9957年6月25日,9957年6月26日,9957年6月27日,9957年6月28日,9957年6月29日と表示されます。

ここで保存してファイルを閉じます。
最近使用したファイルで同じファイルを選んで開くと、9957年6月25日,9957年6月26日,9999年12月31日,9999年12月31日,9999年12月31日になっています。ここでセルの書式設定を数に変更すると2942936,2942937,2958465,2958465,2958465 に変化していました。

意図的な仕様と思われる。(少なくとも当時のコードの設計者にとっては)
(「その仕様で良いのか?」という疑問と「そもそもMAX_DAYSに指定された数値はどのような根拠で算出されたものなのか?」という疑問は自分にありつつ)

Maximum date value in Base is 27/06/9957

https://bugs.documentfoundation.org/show_bug.cgi?id=40575

と共通で利用されているコードが原因と思われる。

簡単に言うと、

https://docs.libreoffice.org/tools/html/tdate_8cxx.html#a01f08d46080872b9f4284873b7f9dee4

で何故か定義されているMAX_DAYS

http://opengrok.libreoffice.org/xref/core/tools/source/datetime/tdate.cxx#82

選べる日付の初期値の一つ1899-12-30
の差分を調べるとそのへんの数値になる

あまり役に立たないかもしれない読み物:

http://local.joelonsoftware.com/wiki/はじめてのBillGレビューのこと

どうでもいいけど、解答欄で採用されている記法の文法がよくわからん。XHTMLで書きたい…

ソースコードレベルまで調べた有益な回答ありがとうございます。

調査結果を鑑みると端的にいうと仕様なのではないかと思われますが、可能なら「仕様と思われる」と冒頭に書き足していただけないでしょうか。書いていただいたら、問題は解決にしてよいと思います。

なお回答欄の書式は変形Markdownっぽいですね。

メモ。