GPIO or USB better for SKR v1.4 - Upload or Upload to SD better?

I have an SKR v1.4 with 2209 drivers hooked up with UART and just got a Pi 4.

I'm trying to decide whether to use the GPIO pins to connect the SKR and Pi or use USB. It leads me to questions that I can't quite find the answer to(but I imagine some of them have been asked before I just can't think of the right terminology).

I guess the first question is, plain and simple, is one way better than the other?

I think if I hook up over GPIO I could only use the "Upload" feature for printing, I wouldn't be able to "Upload to SD" and let the board handle it?

That leads to another question. What do those buttons mean exactly. From reading I think the "Upload" button mean essentially the Pi sends each individual G-Code command to the printer? And the "Upload to SD" button sends the whole sliced gcode file to the board and then the board takes care of everything?

If that is the case is it better one way or another on a newer board like the SKR v1.4? I "feel" (but have no real idea) that the better thing might be to transfer the file with a newer board like this and let it handle everything, I say that because I've seen comments from people saying sometimes the USB can't keep up with sending commands, but also saw that is believed to be due to boards with poor usb implementations?

SKR v1.4
TMC2209 controlled using UART
Raspberry Pi 4 running OctoPi Says Version 1.3.12 in the about panel but the image I used is: octopi-buster-lite-0.17.0

Edit: I see now that Ocotprint version is 1.3.12 and the next panel shows the Octopi version is 0.17.0

Thank you!