On our SMP server we set worldspawn on accident but even if players go in beds and reconnect at the worldspawn how do we remove the worldspawn?
What I do is make sure you unload your server then run NBTExplorer (a free program that allows you to edit NBT data files) and open your
level.dat file located at
%appdata%/.minecraft/saves/<yourworldfolder>/with it. In SMP you would need to locate your world data folder (it varies depending on how you install it).
Then go to the key for
SpawnZ and delete them. That will remove the set spawn.
Either way, even with a set world spawn point beds should override that provided they sleep in the bed long enough for the screen to fade completely.
One thing that may be important to know if you work with redstone a lot or other automation/farms. As is rather common knowledge to seasoned players, around your initial starting point, known as world spawn, there are a number of 'chunks' which regardless of where players are will always remain loaded and active (which are different concepts). When you use
/setworldspawn you actually redesignate which chunks are to be kept loaded. When you delete, per my instructions, and reload the world, you will reset them to their initial location (when you first created the world). If you have automation and farms that rely on the loaded chunks, you should move them as well.
You will need to save your changes in NBTExplorer and then reload your world.