Didn't the Germans arrange the Exchange Code to give the same check digit as the original xxx yyy-z style number?
Pat
At one point some railways - notably ÖBB who have 4 digit class numbers - were varying the exchange code (first two digits) to give the same check digit for powered stock (locomotives, MUs etc). However the exchange code now identifies the type of powered stock (91 = electric loco, 92 = diesel loco etc) so ÖBB have just dropped the check digit off the short version of the number.
For railways such as DB they may vary the 5th digit to make the check digit for the short number work. So, for example, loco 103 235-8, which you'd expect would have a number such as 91 80 0103 235-x is actually numbered 91 80 6103 235-8 as the '6' gives the same check digit for the short and long numbers.