Xforwarding over ssh only forwards rendering commands, so xforwarding a pdf document over ssh should be a lot less information (probably an order of magnitude) then sending a screenshot of an already rendered document. Yes vnc seems to be way faster. How is this possible? Unless the slow down is on the client side due to local gpu bottleneck, but it really shouldn't be an issue for something like pdf.
X11 is sending single draw calls, queued up in a synchronous pipeline, meaning each call is waiting for an acknowledgment of the previous one (over-simplified).
If you have a connection with a high latency (delay for each sent message), this can be way slower, because all the tiny draw calls (depending on how many different elements, buttons, etc. need to be drawn) this can take very long, even if the bandwidth is very high.
In this case VNC can excel performance-wise, because it can send a lot of data (image tiles of the screen) at one, without directly having to wait for the responses in between.