I was looking into that, but got sidetracked and found this comment from the ref client's lead dev...
sendtoaddress didn't always return a transaction id. It was changed to do that to facilitate bookkeeping. Sort of ironic.
https://bitcointalk.org/index.php?topic=807.0