Since #1935 has been committed, the following behavior changes from "enhancement" to "bug" since there's now an inconsistency in fish's syntax:
~> if not set -l output (somecmd && echo "success")
echo "command failed!" 1>&2
end
echo "Output is: "$output
Output is: