Thanks for your replies.
So I understand that in theory my circuit would work (phew) but it's not ideal. I need better protection.
I haven't seen the wires installed in his house myself. He is in Germany and I'm in the UK. This is also why trial and error is not very practical in this case. I'm building this for him and it should then work at his place when I post it to him. So I rather over-engineer it a little.
From what he tells me these are single pair wires connected to the reed switch on each window. Not sure what type of cable they used. Will ask. I doubt it's shielded.
There is also no power by the windows, just the reed switch. So running anything active near the window (like the suggested ATtiny) is out of the question. Also, for the same reason and because the cables are already installed, fibre-optics are ruled out too.
I'll edit the schematics with the suggestions made here and post it again.
You will need good protection circuitry if the cables run alongside mains cables (these can have kV level spikes on them which would induce crosstalk voltages easily capable of frying the Arduino.
I'd suggest for protection using a 10k resistor in series with the cable at the Arduino end and a 100pF to 1nF capacitor to ground on the input pin. The chip's protection diodes ought to do the rest (adding schottky diodes will be more rugged). Since the application doesn't require high speed operation the low-pass filter formed by the resistor and capacitor won't be an issue.
You will need to debounce the signal since it comes from a relay.
Do you mean I should get rid of the UDNs alltogether or add the resistors and capacitors to the circuit with the UDNs still there? I wish there were capacitor arrays just like the resistor arrays. 16 capacitors to GND is going to be a nightmare on Vero board.
Regarding debounce, the idea was to read the switches every 10 seconds or so, not continuously. I was hoping that I wouldn't need debouncing in that case. Even if one read-out was wrong, 10 seconds later I would have the correct state.