Скаффман ответил на вопрос, но исчез, поэтому я отвечу за него.
Функция проверки привязки предназначена для привязки и проверки параметров, а не произвольных бизнес-объектов.
Это означает, что если мне нужно выполнить какую-то пользовательскую проверку некоторых общих данных, которые не были отправлены пользователем - мне нужно добавить некоторую настраиваемую переменную для хранения этого состояния и не использовать BindingResult.
Это отвечает на все вопросы, которые у меня были с BindingResult, так как я думал, что его нужно использовать в качестве контейнера для любых ошибок.
Опять же, спасибо @ Скаффман.