Ach ja, warum das Zusammenfügen nicht geht, aber das Aufteilen schon, ist recht einfach erklärt.
Die Werte des Enums sind ja "nur" Namentliche Bezeichner für je einen bestimmten nummerischen Wert.
Ersetzt man mal die Namen durch ihre Werte, dann fällt das Dilemma auf.
Delphi-Quellcode:
type
TTeilmengeA = (0, 1, 2);
TTeilmengeB = (0, 1, 2);
TAll = TTeilmengeA + TTeilmengeB; // würde nun doppeldeutige Werte enthalten ( ist die 0 nun A oder B? )
type
TAll = (0, 1, 2, 3, 4, 5);
TTeilmengeA = 0..2;
TTeilmengeB = 3..5;