Why does letterpress text need a color close to the background?
Because the relief depends on the eye picking up two subtle light edges around the letter, not a strong outline; if the text has high contrast against the background, the two thin shadows visually disappear behind the main color difference, and the printed groove effect stops showing up.
Can letterpress work on small body-text paragraphs?
Technically yes, but the effect only reads well from medium or large headings up, because the two 1px shadows become proportionally huge next to a small letter; on body text the result usually looks like a blurred edge instead of the intended relief.
Do I need to swap the two shadows if the background goes from light to dark?
You need to flip which shadow is light, which is dark, and which sits on top of the list, because the relief depends on the simulated light direction staying plausible; keeping the same light-on-top recipe over a dark background makes the letter look like it is floating instead of sunken.
Does the CSS letterpress effect relate to the original physical printing process at all?
Only in its final look: the CSS technique presses nothing, it draws two offset shadows to fake the visual read the eye gives a real printed groove, a purely optical effect that imitates centuries of mechanical typography with no physical relief on the screen.