Sorry, I should have checked the date of patches to get the latest one. The right patch is correctly formatted and applies well. Thanks!
You are right regarding point 2: in 2.x 'id' is the reversed (and punycoded) URL. In 1.x the situation is different. But for 2.x there is definitely no problem. For 1.x this should be discussed.
Testing the patch failed because URLUtil.toUNICODE() returned null for punycoded URLs (opened
Is there really a need for isPunycode(). At least, for the current patch it checks for punycode by converting to Unicode and comparing the result with the original URL. It would be more efficient to convert it unconditionally (without changes to the URL if it's not an internationalized domain name).