The right bracket/right curly bracket and the plus/equals symbols are swapped in the /usr/X11R6/lib/X11/xkb/symbols/dvorak file. The symbols for codes <AE12> and <AD12> need to be switched.
From what I understand, this correctly conforms to the ANSI (I think, it might be an ISO or somesuch) standard Dvorak keyboard layout. This aspect of the standard is a nonfunctional one, and I agree in principle that the conventional mapping: 0 [ ] \ l / = in that area is Obviously Better than the standard 0 [ = \ l / ] However it is not the "official standard" so there is a reason it's that way, although I would personally change it as you have described.
Thanks; actually, both the MacOS and Windows 9x/NT use the mapping I have described; I never knew the other way was the Officially Sanctioned Standard. If two out of three of the major operating systems use the other mapping, that makes it a de facto standard, eh? Who are we to say otherwise? :)
Fixed in Xfree86-3.3.3.1-49.