Big fail where this is concerned, Microsoft, for not having addressed or corrected this behavior for so many years
If it were a widespread problem then MS would surely have corrected it, due to the volume of complaints. Their own internal developers would have experienced it too.
I have a laptop with the standard C: drive. I also have an SD card slot that I set as the E: drive. It's drive letter has never changed. Logic would indicate that there must be something unique to your hardware or environment or maybe a wayward registry setting somewhere.
I don't know if we can fix it, but I can try to help you troubleshoot it and see if we can isolate the problem.
What kind of drive is it, HDD, SSD, external USB drive? Does it just get assigned the next drive letter? (IE: you set it to E: but it gets changed to D:)
Is your PC/userid a member of an Active Directory domain that might have a logon script assigned? If you logon with a different, local account after a reboot do you see the same behavior?
Have you reviewed the system eventlog for any disk related events?
Running the Mountvol command I can see my E: drive.
\\?\Volume{f882df2a-c164-11e5-826a-d09c2071b6b1}\
E:\
That shows up in HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Do you see your volume and do the registry entries change/disappear after a reboot?
To try to find who/what is doing this, we will can run Process monitor. https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
You will have to enable boot logging, and make sure that "process name is system" is not being excluded in the filter. Then reboot. Log back on and immediately run procmon and stop the trace. Then search the entries for that registry key and see if you can make any sense of what is going on at that time. Ex: Are services being stated? Is a scheduled task being executed.
I realize that this is not a trivial exercise but you are effectively looking for the proverbial "needle in a haystack".