To be entirely honest I‘m not 100% confident on the entire flashing of various ESP32‘s. Just today I flashed an ESP-01 via a programmer without doing anything the to the GPIO0, and it still worked perfectly fine.
And regarding your question: Yes, if I remember correctly you‘re right: TX and RX have to be crossed. Not sure anymore whether this was also mentioned in Blakadder‘s article.