zfs: zpool space map thrashing - ever fixed?

Unfortunately, in a word: no.

In a longer word: sort of. The method by which ZFS finds free space to use has been somewhat altered in latest builds of ZFS (Open-ZFS) to somewhat mitigate the issue -- the underlying fragmentation remains, the 'fix' is that it has less impact on performance.

The only true 'fix' you can use at the moment is to zfs send the data off the pool, wipe the pool out, and zfs send the data back. Obviously the problem will then reappear at a later date, based on your workload and how quickly you fragment the space maps.

There are other potential fixes/workarounds being discussed/in the works, but I certainly couldn't give any sort of ETA.