Drive letters are an abominable relic from the pre-DOS CPM file system. Internally, Windows uses object identifiers (see
https://technet.microsoft.com/en-us/sysinternals/winobj.aspx ).
I wish MS would remove these.
Be that as it may, the order that things get assigned are the order they enumerate from the Plug and Play subsystem which is based in BIOS and Motherboard issues.
In fact, there are cases where the drive letters may enumerate differently from Boot to Boot (see
https://support.microsoft.com/en-us/kb/937251 ).
You can force the assignment of drive letters as shown above and you can mount drives without drive letters, but as folder locations, as like Unix mount points using the Computer Management -> Disk Management (Change Drive Letter and Paths...).
I have 8 physical drives made into 14 volumes and I have encountered lots of issues with this.
By the way, you can use drive letters A and B nowadays, as I do. They are no longer reserved for Floppy Drives.
When I mount ISOs, like when installing NI Komplete, I can run out of drive letters. You can't use UNICODE letters for Drives (but you can for folder names, if you want to get into trouble with the many programs that don't support Unicode). Also UNICODE naming sorts in weird ways, not lexically or in binary order.