“… why can't the OS handle mapping physical keys to common logical commands like undo?” Sadly, Mac OS X can’t do that either, but it does include two solutions to the problem you described where Z,X,C,V are in different places on the Dvorak layout.
One is that it includes a keyboard layout called “Dvorak – Qwerty ⌘”, which lets you type text in Dvorak but switches to Qwerty temporarily while the ⌘Command key is held down. For instance, “⌘Q” according to the Dvorak labels would actually execute “⌘X” for cut, but you can still type a q by pressing the same key without Command.
The other solution is that it lets you globally remap keyboard shortcuts of menu items, in System Preferences > Keyboard > Keyboard Shortcuts > Application Shortcuts. To fix Undo, for instance, without using the Dvorak – Qwerty ⌘ layout, you would add a new shortcut for “All Applications” with Menu Title “Undo” and Keyboard Shortcut “⌘;”.
One is that it includes a keyboard layout called “Dvorak – Qwerty ⌘”, which lets you type text in Dvorak but switches to Qwerty temporarily while the ⌘Command key is held down. For instance, “⌘Q” according to the Dvorak labels would actually execute “⌘X” for cut, but you can still type a q by pressing the same key without Command.
The other solution is that it lets you globally remap keyboard shortcuts of menu items, in System Preferences > Keyboard > Keyboard Shortcuts > Application Shortcuts. To fix Undo, for instance, without using the Dvorak – Qwerty ⌘ layout, you would add a new shortcut for “All Applications” with Menu Title “Undo” and Keyboard Shortcut “⌘;”.