Because, mostly, digits do nothing, the QWERTY-topping numbers may
also be keybound to cover other odd circumstances, like the FNkey-'powered' conversion of NumPad-on-QWERTY to digits, as compact laptop keyboards might use, the OS only being informed that the equivalent keytop in the regular Digit Strip had been pressed so unable to differentiate.
It certainly sounds that DF doesn't care what the Shifted-Keytop is under any given localisation, so Shift-2 can be " (for me, UK layout) and Shift-3 as £, or whatever they are on US/other-national layouts, and it still deals with them only as Shift-<digit> for cursoring purposes, rather than trying to also cater for @, #, etc in back-forming the intentions in ways that suits
every internationalisation, without ambiguous overlapping with the possibility that the bits of the keyboard where
my @ and # exist (on a proper UK keyboard, in the cluster of punctuation over near the Enter key. On this Android onscreen keyboard, long-pressing 'a' and 's' with (because it's UKified) long-'d' being £ and 'x' for "... Not that I can play DF directly on Android, of course.
I know that there are various different ways an executable can capture keyboard input, from just taking a stream of characters (including being piped/redirected) to actually getting keyboard interupt data (used to be easy direct memory access, before HALs and the like forced de-HALling libraries to intermediate in most circumstances, which always seems inefficient from my POV). There's also far too much lazy programming (such that a streamed &GBP; symbol can often be seen rendered as # instead of £ when there's no longer any need for that old '70s-and-earlier incompatibility replacement) so I greatly admire that Tarn has apparently found the sweet-spot of input-wrangling that (mostly) works exactly as intended, where so many others have failed to do so.