I honestly don't know the answer to that one. But before you can switch to 64-bit mode you need to set up segment selectors, an interrupt table and paging. Conceivably these could be set to some standard values, but normally you would want to specify these details yourself. But there are still several other things that you will want to set up that cannot be accessed from C (several configuration registers for example), so a certain amount of assembler is always going to be required.
I guess if the x86-64 didn't care about backwards compatibility it would be a lot cleaner. I'd be interested in studying the IA64, but where can you easily get hold of one of them? The PPC and ARM processors are a bit cleaner in this respect.