xinitrc has bit rotted a bit, and needs a housecleaning. There is very similar code in both 'xinitrc' file and 'Xsession', it might make sense to either merge the two or have them share a common portion, or even to have them both generated from a master template or something at build time, so that there is not code duplication, and bug fixing needed in two places, but having the risk of only getting fixed in one place.
I've done quite a bit of cleanups in xinitrc package since filing this, however it should still have a good review of all scripts once again to see if there are other ideas to clean things up, such as some of the ideas Jens had with having an xinput.d dir for the IM stuff. Leaving this open for now.