GUID's are not strings
depthinfinity.com
depthinfinity.com
This becomes an issue because now everywhere you operate on these data types you have to implement the math to add, subtract, multiply, and divide these values, and the syntax becomes much dirtier. You wind up repeating the same rounding rules everywhere except in one place, and then it happens that there's a bug caught during system-level testing that's specific to that rounding error. This is an issue I have seen repeatedly with the project I'm currently working on, and it's a huge pain in the ass.
Meanwhile with some reasonably clever use of syntax and the creation of a fixed point arithmetic library at the start of the project, you're always applying the same rounding rule, and you don't have to do wonky stuff just to round your numbers.
That's because a lot of people do store dates as strings, not numbers.
Take, for example, sqlite. The documentation clearly states that it stores dates as text strings.