I've done some testing on my end (trying and failing to map make) that setting the spawn point with a command block (with @a) seems to work just fine up until I die. Meaning that with that first death I will spawn correctly wherever it was last set to, but after that I am no longer able to change it with the exact same command blocks until I reload the world.
I still seem to be having this issue in 14w04b.
Seems to affect Z coordinates sometimes as well.
Confirmed for 1.12