Eternal Newbie is correct: sometimes xfce gets corrupted cache files:
get to a console prompt and do the following
this removes xfce4-session cache files as well as xfwm4 cache files... then log out and log back in and your settings should be restored... shouldn't have to change run levels or back up your life's work... your only deleting "cache" and not the actual settings...
i find that situation happens most frequently to my laptop if I let it run out of power... I don't think it gets the session saved properly before it dies, and then when I give it power again, my icons are gone, but only until I delete the session cache...
This is an issue when installing linux/xfce for people who don'tcare to tinker with it... it makes them hate it when their icons disappear, therefore, I was wondering, if adding the code to remove the cache to some startup script would be a viable workaround, and if so, I'm not sure which one to add it to: the user's shell startup (like ~/.zshrc) or maybe add it to /usr/bin/startx, or perhaps /etc/rc.d/local; does anyone have any suggestions about whether removing these cache files when user is logging in is a good idea?