I haven't worked with a Raspberry Pi, but I have reduced boot times with embedded Linux systems so I have some general answers.
1) OpenElec may be a perfectly workable embedded distro, but beginner/demo distros tend to throw in the kitchen sink to give you a wide breadth of capability, but that often means there are services starting that you don't need. So look in the init directories and shut off or defer anything non-essential for your purposes. If you don't need any thing graphical, on slower systems, X windows or graphics processes can be real time hogs. Not necessarily because it can't generate graphics adequately, but getting all the libraries loaded into memory takes time. And it takes time from loading when everything else you want is also loading or waiting to load.
2) SD cards have different read speeds, buy the fastest one that the device can handle. Or maybe see if a USB stick will load faster. You likely won't need the 40Mb/s cards, but going from a cheapie SD card to one that can handle 10Mb/s transfers could make a difference - again depending on what SD cards the Pi can handle). As an tangent: running off an SD card if the filesystem is writable isn't great for long term stability. If you need that, you may need to consider configuring your boot settings to treat the card as read-only or, make other system arrangements entirely.
3) If you really need graphics, the illusion of being booted is sometimes easier to get to than actually being 100% ready for any input. There are console boot splash screen programs that can throw up a graphic really quickly while all the other services you need start up. I've seen instances where a initial control panel graphic is used as a static boot screen which gets swapped out for a live working one when the system is ready - the user rarely truly wants to enter data within 2-3 seconds of the screen showing up.
If you're still looking for faster boot times, look here for a list of areas to look into.