¿Por qué ASP.NET MVC Html.CheckBox genera dos ENTRADAS con el mismo nombre?

¿Por qué en el mundo hace la línea:

<%= Html.CheckBox("ForSale", Model.Product.ForSale)%> For Sale

resulta en el siguiente HTML:

<input id="ForSale" name="ForSale" type="checkbox" value="true" />
<input name="ForSale" type="hidden" value="false" />
For Sale

Ahora cada vez que marque la casilla y accedo aRequest.Form["ForSale"], Me sale la ridícula respuesta de"true,false". ¿Se supone que debo analizar eso?

Este campo oculto no aparece para los otros controles HtmlHelper, entonces ¿por qué lo hace para CheckBox?

¿Cómo desactivo esta "característica" estúpida? O hizo elHtmlHelper acaba de superar su utilidad?

Actualizar

De la respuesta a continuación, parece que hay algo de lógica detrás de esto. He preparado un pequeño método de extensión para no tener que pensarlo (gracias a @ eu-ge-ne):

    public static bool GetCheckBoxValue(this System.Web.HttpRequestBase req, 
                                        string name) {
        return Convert.ToBoolean(req.Form.GetValues(name).First());
    }

Respuestas a la pregunta(7)

Su respuesta a la pregunta