Fish 4.0 added a history append command - so now Bretts answer can be simplified to
history append
function evalh --wraps="eval" --description="eval and add to history" history append $argv eval $argv end