Yes, disabling javascript makes it work, but then also makes all the automatic XFN building code stop working.
Looking closer at /wp-admin/js/xfn.js, this seems to be the desired behavior. Notice this:
var aInputs = document.getElementsByTagName('input');
for (var i = 0; i < aInputs.length; i++) {
aInputs[i].onclick = aInputs[i].onkeyup = upit;
}
This sets every input field to run the upit() function on every keypress or click of those fields. upit() is earlier in the file, but basically it builds the link_rel field based on the XFN inputs.
One solution would be to add a nofollow checkbox. This is actually very easy, given the javascript code. Just add this to edit-link-form.php, around line 113:
<tr>
<th scope="row"> <?php _e('following') ?> </th>
<td>
<label for="follow">
<input class="valinp" type="checkbox" name="follow" value="nofollow" id="nofollow" <?php xfn_check('follow', 'nofollow'); ?> />
<?php _e('nofollow') ?></label>
</td>
</tr>
Voila. Checkbox produces nofollow code.
I have not tested 2.5, but looking at the JS source doesn’t show much difference to me. Looks like it would have the same issue. Still, the “fix” might be elsewhere.