Variable names in form & CSV don't match JSON or Central display

1. What is the issue? Please be detailed.
My XLSX form has a fields that contain - & . characters eg field-name or

The XML definition and the downloaded submissions CSV field names match these.

However the field names in the JSON response / PowerQuery and the field names displayed the Submissions page in Central replace these characters with _

The XLSXForm template doesn't mention invalid characters apart from spaces and having to start with a letter/underscore.

Variable name. It may not contain spaces and must start with a letter or underscore. You should use a short, descriptive name and can use underscores to separate words. For example: date_of_birth.

  1. Is there a reason for the translation of these characters to underscores and does it apply to other characters?
  2. Why doesn't it apply to the submissions CSV ?

2. What steps can we take to reproduce this issue?
Create a field name with a - or . then compare the field names in Central and JSON/PowerQuery to the fieldnames in the submissions CSV