Атрибуты в порядке, потому что они действительно являются частью модели предметной области.
Я думаю, что нашел решение проблемы. Я исправил Castle.Validator, чтобы сделать так, думал. Это безумие, но этот код:
property.GetCustomAttributes(true /*inherit*/);
возвращает пустой массив, в то время как, по моему скромному мнению, полностью эквивалентный код возвращает атрибуты:
System.Attribute.GetCustomAttributes(property);
Что за @ # $%?