When the design violates the principle of least surprise, you don’t close it as By Design
I don’t actually have an opinion about the actual feature, but I felt that I just have to comment on this post, from Brad Wilson, about the [Required] attribute in ASP.Net MVC 2.
Approximately once every 21.12 seconds, someone will ask this question on the ASP.NET MVC forums
The answer is the title of this blog post. ([Required] Doesn’t Mean What You Think It Does)
If this is the case, I have to say that the design of [Required] is misleading, and should be change to match the expectations of the users.
We have a pretty common case of plenty of users finding this behavior problematic, the answer isn’t to try to educate the users, the answer is to fix the design so it isn’t misleading.
I am pretty sure that when the spec for the feature was written, it made sense, but that doesn’t mean that it works in the real world. I think it should either be fixed, or removed. Leaving this in would be a constant tripwire that people will fall into.