Since you are changing the function signatures anyway,
you could make them consistent between `dired-map-over-marks'
and `dired-get-marked-files' by adding an explicit arg `marker-char',
i.e. both `dired-get-marked-files' and `dired-map-over-marks'
could end with "distinguish-one-marked marker-char all-marks",
thus explicitly passing `marker-char' arg down the call chain.
Then you'll need `(or marker-char dired-marker-char)' in
`dired-marker-regexp' for backward-compatibility. And then also
no need to let-bind `dired-marker-char' in `dired-get-marked-files'
(it's better to avoid dynamically binding global variables where possible).