PDF writing isn't too bad IMO, since you don't need to understand the whole spec. I've written a PDF writer for maps from scratch and it was fairly easy and not too much code.
PDF reading though... Yeah I'm happy to leave that to people with more time and use their libraries.
A modern format would be nice, but I don't think it would be anywhere near nice enough to give up how universal PDF is.
That's just playing with semantics. They are clearly bugs. They are literally called "defect reports".
There are many aspects to safety and it's definitely a good idea to have a spec for a language, but it doesn't automatically mean safety is impossible without it.
The nice thing about abstraction is that you can talk about software without considering the hardware, more or less. If one says "this software is safe", it means it's safe assuming it's running on working hardware.
It doesn't always hold up - sometimes the abstraction leaks, e.g. for things like spectre and rowhammer. And there are sometimes performance concerns. But it's pretty good.