I stepped through this process today in the debugger to see what was going on. One of my accounts has:
Slot 0: attack
Slot 1: ranged attack
Slot 2: empty (but iterating anyway?)
Slot 11: Yell
When I hit the Client::Save() in client.cpp, I stepped through the iterator and saw two bizarre things.
1) I got through slot 0 and slot 1 fine, but that slot 2 (in my database) has no icon, so is "" (blank).
2) After logging in for this test, I dragged "Yell" to slot 11 (last slot on the quickbar). The iterator saw it, the slot ID and text all showed proper, but it never got inserted into my character_skillbar record. Maybe because the client had already disconnected/timed out?
Anyway, I'd realllly like to get these hotbar/quickbar updates working since we're using more and more macros for cleanup, it's a royal pain to have to reset your bar each time you reconnect. And with crashing still being a regular thing, this happens often.

Anyway, hope it helps narrow down the bug... if it is even a bug and not just a "macros are not implemented yet on hotbar" heh.