Interesting that the port provides direct memory access. I imagine that this was a simple way to provide access rather than defining a complete protocol with things like "Download Access Log", "Reprogram Log". Just let the handheld device give you access to memory and you can build whatever functionality you want later.
I actually worked on something like this where I had a program that would send arbitrary code to be executed on a device. That way it could be made to do whatever we wanted.
That isn't a bad thing if there's some way to authenticate, and it looks like the big flaw here is that the unique ID is also readable from the same memory.