_t is even a "reserved" suffix in C. Stop using it. If you want compile-time type safety, pick another language like Haskell. A "typedef" is by no means a contract declaration in C.
No it is not reserved, it's just posix's personal style guides.
There's just as much of a name clash possibility when not using _t because lots of other libraries and platforms uses some other convention.
Only ISO C can reserve things, no one else, and ISO C does not reserve the _t suffix.