This is simply the default property defined by the HTML attributeelement at startup. When it is shot, it is DOM propertythat which actually switches. This is why the attribute does not change.
This code prints the current DOM property checkedto the console:
$("input").click(function(){
console.log($(this)[0].checked);
});
JSFiddle