SD card has a controller that makes it act as a drive. Flash card does not, it's far more primitive. You have to code where your data is for both reads and writes.
unsigned int n; n = f.read(buf, 256); ff.write(buf, n);
You could also consider obfuscating or encrypting the data written to the SD card
You can solder an sd card and hardwire to an Esp8266 or other 3.3 voltage chip.Then glue it to the board.Esp8266 also has more memory.
Yah, to get all those PCDOS file commands free you can pot (seal in epoxy) a wired and tested microSD with heatsink (metal washer or actual w/fins little heatsink) on one face to prevent heat buildup. I once bought some custom shape SD's and they died of heat when copying big files and likely because of voltage-divider leveling 5V to 3V heat was insulated by the deco body with no heatsink.
You have to put a circuit or chip between 5V and SD. The 74HC4050 hex buffer will convert 5V to 3V on 6 channels, buy a few and they're < 50 cents each. You can use a diode to block the 5V coming through, when that wire is LOW it will drain voltage from the 3.3V side of the diode. You give the 3.3V side 3.3V through a 10-20K resistor to pull the SD pin up when the 5V side is HIGH and keeping the 3.3V pullup voltage from draining away. You would need 1 for each line the 5V transmits on (MOSI,SCLK,SEL) and none for lines the SD talks back on (MISO).The chip is a little cleaner and can level 2 SPI devices but 3 diodes and 3 resistors are a lot cheaper and you may already have those.
A relay? Really? Switching that takes more current than the chip would use in a long time.For DC, transistors are far more efficient, only electrons move. Read up on MOSFETs. MOS is the type of semiconductor, FE is for field-effect and T is for transistor.
Arduinos have an in-system chip program header capable of loading hex files to your chip.The Teensy 2.0 and the Arduino Micro (may be out of production) both have that USB chip.
Arduino can run a PS2 keyboard directly.