Ага, нашел ответ. msdn.microsoft.com/en-us/library/ms536437(v=vs.85).aspx getElementById: Returns the first object with the specified ID or NAME.
Это же надо было до такого догадаться.
У меня такое ощущение, что MS специально разрешает программистам допускать мелкие ошибки. Что бы программисты, разрабатывающие под их браузер, не могли создать программу совместимую с другими браузерами.
В моем конкретном случае Name у чекбокса. К нему прилагается input type=hidden элемент у которого ID соответствует нейму чекбокса. В hidden хранится значение связанное с чекбоксом. Поменять схему всего этого чуда не представляется возможным на текущий момент(проект старый и большой, легаси штучки и все такое).
То же самое поведение getElementById проявляется и в ИЕ7 и в ИЕ8. Судя по всему, МС считает, сто это нормальное поведение.
Подумалось: если задача касается исключительно пар полей, взаимное расположение которых заранее известно, то можно ведь обойтись вообще без идентификаторов:
В проекте используется PrototypeJS версии 1.6.0.2. В этой версии, если использовать CSS селектор, эта проблема проявляется все равно. В более свежих версиях это пофикшено, но обновлять опасаюсь, нужно будет всесторонне тестировать, на тему «а не поломалось ли что». А проблему желательно устранить побыстрее.