>>706 ヘルプで「衝突(名前)」を参照するとわかるかも。
異なるスコープで識別子被ってもエラーとしないですよ。
>>705 が uses に言及しているのは、 uses の記述順は名前の衝突が
発生した場合の優先順位を決定するからやね。

漏れは$DEFINE VECTOR の方が疑問す。
例えば先にIntVectorがコンパイルされた後は VECTORが定義済なので
RealVector コンパイル時、1回目の include で(型宣言でなく)
implementation以降が展開されてコンパイルエラーになる気が
するんですが、何故エラーにならないのか分からんです。