If the headless server has a UI process running that is absolutely wasted resources. Having the same environment for the dev's laptop and the server seems like such a waste of resources. The two things are not the same, so don't try to fit the square peg in the round hole. Whatever these differences are, they should be able to be determined and accounted for in the deployment.
To me, we've gotten a bit lazy and a bit too focused on the wrong things. I feel like this happened when we started running javascript on the server. That was such a shock to the system and all sorts of things had to be done since it just was not the normal way of doing things. Someone decided it'd just be easier to clone the dev's system and deploy that as a server. Like what the actual... I also totally feel the same way about running a Windows Server. Like why on gawds good earth would you ever think that was a good idea?