А что у вас представляет интерфейс. В общем ничего, его нет как такового, если учитывать его составляющие. В вашем приложении данные типа дата живут своей жизнью, а элементы управления своей. Текущая дата не обязательно соответствует набору элементов управления. Вы как бы переложили решение всех проблем на плечи пользователя. О каком удобстве и предсказуемости можно говорить в этом случае?
Ну допустим, ваш интерфейс, это по принципу "максимум возможного - кашу маслом не испортишь". А вы задавались вопросом - все ли наизусть помнят сколько дней в каком месяце? Если пользователь видит 31, а на самом деле в этом месяце всего 30 дней, то вправе ли он верить вам, что в этом месяце действительно 31 день? А если так, то это предпосылка к ошибочному действию пользователя, и эту предпосылку заложили вы и в логику своего приложения, и в ее интерфейс. Хотите сообщать пользователю о таких ошибках? А зачем их создавать, где же логика?
Ну допустим, все знают дедовский метод определения дней месяцев по косточкам пальцев. И пусть это, заставляющее пользователя перед выбором обращать взор на свой кулак, и уже говорящее о необдуманности логики и интерфейса приложения, примем как за фишку приложения, пусть смотрит на кулак, узнает сколько дней в месяце, а затем выбирает нужный последний день. Но встает вопрос о феврале - а сколько же в нем дней в текущем году? Разделить по модулю 4 текущий год? Многие уже умножать в уме разучились, а что такое деление по модулю и тем паче не знают. Но это еще пол беды, а беда в том, что високосные года, это не просто только те, что делятся на 4 без остатка, но также не делящиеся на 100, за исключением годов делящихся на 400. Нихилая математика для пользователя, не так ли?
Говоря об интерфейсе вашего приложения, нужно скорее говорить о непредсказуемости его, а не пользователей. Об удобстве пользования им и ожидаемом поведении вообще не приходиться говорить, это вообще отсутствует.
Я много написал и в двух постах, так как столько много форма не примет, но это для того чтобы пояснить почему я так думаю. Нельзя говорить о логике приложения как о логике, если в программной части она может и решает задачу, но интерфейс приложения совсем отсутствует.
Но это мое мнение, вы же можете поступать как считаете нужным, задачи переубедить вас в чем-то у меня нет, и писать более, а тем более много, у меня времени уже не будет.