I started using OSX after using XMonad for the better part of a year, and it doesn't even come close. Like vault_ stated, its simply to clunky. It takes almost a second to switch between workspaces, with a shiny and pointless animation. The shortcuts are hard to get right too, I still don't have a good one to send windows between workspaces (which I used to use extensively for keeping things organized and staying sane.)
I assume XMonad is a similar experience to Awesome--I never tried to understand Awesome too much. Spaces cannot compare.
Xmonad is nice, but Awesome's tags beat it IMO. You don't really have multiple desktops, you have multiple tags. Each window can have multiple tags and there can be multiple tags visible on the screen at any moment. So what you end up seeing is a union between all the windows with any of the tags that are set to be visible.
Awesome is both really minimal and really extensible. By default you don't have anything, and you build it up to how you like it with lua and a couple of libraries that expose bindings to things like desktops and tags.
You're right, it's hard to move windows between. But, you can set defaults so that certain apps open in certain spaces. For me, this has been good enough.
Awesome, thank you. Even though I don't necessarily like Spaces, I still use them extensively. No animation makes it better, I have not used application assignments yet (but probably will soon.)
I assume XMonad is a similar experience to Awesome--I never tried to understand Awesome too much. Spaces cannot compare.