I've worked on a lot of systems in my career and I have found there to be a lot more complex and interesting problems in the "backend" than in "frontend".
With backend development, there are very real consequences for making mistakes, and you have a high chance of being punished for making them. When I have front-enders moving down the stack I have to invest significant effort into this. Particularly around secure development, proper automated testing etc, they are fairly uncommon in the frontend but absolutely vital in the backend.
I do get more enjoyment - more feeling of having "made" something when I've worked on the frontend. There's just something about being able to interact tangibly with your work which gives me a big sense of accomplishment. That, and if you're working on a game/native code then the optimisation work is more immediately rewarding.
The testing frameworks are also pretty good, helped a lot by the frameworks being built properly (inversion of control :drools:).