Despite how great it is, the need of escaping ? and & characters or using quotes is very annoying...
Also, URLs with & don't work in bash anyway. Or rather, they will work, but do something you wouldn't expect - it would ignore & and everything after it, and run command in the background.
Please note that zsh works similarly to fish. Well, mostly. It seems that zsh has special logic that automatically inserts backslash before ? if it detects an URL. Perhaps that could be implemented in fish. But it also feels somewhat magical. Why "\?" would appear when I type "?"? But perhaps it's the best way. In your case, it's possible to break it. But the break looks really contrived, so perhaps zsh behavior would be safe.
[glitchmr@pineapple tmp]$ mkdir -p https://news.ycombinator.com
[glitchmr@pineapple tmp]$ touch https://news.ycombinator.com/itemsid=5723235
[glitchmr@pineapple tmp]$ wget https://news.ycombinator.com/item?id=5723235
--2013-05-17 13:39:09-- https://news.ycombinator.com/itemsid=5723235
Resolving news.ycombinator.com (news.ycombinator.com)... 184.172.10.74
Connecting to news.ycombinator.com (news.ycombinator.com)|184.172.10.74|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-05-17 13:39:10 ERROR 404: Not Found.