On the original test machine I timed the sed solution, as well as
`(grep -m1 . 'file' && grep 'pattern' 'file')` and
`(mapfile -n1 <'file' && echo $MAPFILE[0] && grep 'pattern' 'file')` and
`(head -n1 'file' && grep 'pattern' 'file')`. Total table of speeds.
grep (v2.20): ~1.15s
perl (v5.36.1): ~4.48s
awk (v4.0.2): ~10.81s
sed (v4.2.2): ~8.15s
grep && grep: ~1.15s
mapfile && grep: ~1.15s
head && grep: ~1.15s
I can write a shell function to make the head+grep version a little easier to use in practice (i.e., loop over the list of files passed calling head+grep on each one instead of calling head on the list and then grep on the list), but I believe it would be difficult to change any options given to grep. I still think the best combination of speed + output as I imagine + ease of integrating with changing grep options used is accomplished by a new option for grep. But if there's no interest then this feature request can be closed.
Dan