A colon is an illegal character in a file name under Windows. So, calibre can't create a file with a colon in its name and replaces it with an underscore. And it does this for any invalid character. For compatibility across all the OSes that calibre runs, it will probably use the same rules.
The trailing dot is related. For the examples I have seen, it is the last character before the dot separating the extension. Windows seems to be OK with this, so it might be another OS. Or maybe it is because it would be very confusing and cause all sorts of problems coding around having the dot at the end of a file name. In the example you gave, it isn't strictly necessary, but it probably is following a standard rule for file names.
|