This is possible, but you'll have to do a bit of work. From the Grub prompt, you can pass arguments to the kernel; then, when you log in, read the kernel arguments and start the specified desktop environment.
For the kernel argument, be very sure to pick something that doesn't conflict with existing arguments. For example:
linux /vmlinuz root=/dev/sda1 ro jake223.de=startkde
You can make multiple Grub entries with different values of
When you log in, pick a “custom session” that executes your
~/.Xsession. In that file, start a desktop environment based on the kernel parameter if it's present.
kernel_argument=$(</proc/cmdline awk -vRS=' ' 'sub(/^jake223.de=/, "")')
if [ -n "$kernel_argument" ]; then
This is a lot of work for little gain. You can select your desktop environment at the login screen, not long after the bootloader screen. You might save a few seconds, especially if you also enable auto-login, but this is marginal.
A more effective way to go quickly from off to logged in would be to hibernate your PC. This saves the current system state to disk; when you boot again, the system state is loaded back in a few seconds. You get not only an already-booted system but all your files and applications open as you left them.