Nice work! Is J4 JTAG, or is the FTDI chip doing that? If the FTDI chip is doing the JTAG, I'd love to talk to you about that. I'm tired of sticking the Xilinx header on my boards and using the programming pods.
J4 is not JTAG to the FPGA, it is Microchip ICSP to the PIC12F1840 chip which is acting as a power/reset controller chip.
FPGA JTAG is the 10-pin header J1 and the FTDI chip at the same time. The 10-pin header uses 1.27mm ARM Cortex Debug Connector, and it contains a sense line that will disable the logic level shifter U5 when a JTAG pod is connected. Spartan-3E uses 2.5V JTAG but FTDI chip can not go down that low, so a 74AHC4T774 is used as a logic level shifter between the two. Disabling that chip disconnects the FTDI JTAG, allowing the pin header to take over.
See the xc3sprog comment above, programming the chip is way more faster/reliable that way. There are also some advanced forks of it, like papilio-prog (https://github.com/GadgetFactory/Papilio-Loader.git).
I found that someone leaked a copy of the configuration data of Digilent JTAG-SMT1 online. My board is loaded with a modified version of that configuration data, allowing both iMPACT-compatible JTAG and UART at the same time.
I'm using this on a similar project as this one, although no SRAM and Spartan6 instead (https://hackaday.io/project/162259-netpp-node) where I tend to build/download everything using oneliners ('make download').
That memory chip is not SRAM. It is SDR SDRAM with a density of 512Mbit, arranged as 64M x8.