1) Correct. In fact, there is no other way to get a 257 if it wasn't that way
2) This happens because this line will always receive a NULL value. In PHP, NULL value is negated it becomes true.
In order to avoid modifying the core so that it could now process the abscense of that value, it is better to send a default value as a hidden value, as you can do that from the plugin itself:
$this->content['form_profile']['hidden']['wall'] = 1;
Note that with or without these changes, any user could send a modified HTTP POST that would set that flag to 0. Of course, they should know enough about the HTTP protocol to do so, take the time to analyze the code in your page, know enough Q2A to know they can actually change that and, most important, they should take the time to do so. If you still want to tackle those unlikely cases, other approaches should be followed.