Basta andare sulla documentazione ufficiale relativa a ctype_alnum dove si legge
la funzione è equivalente a preg_match('/^[a-z0-9]*$/i', $text)
Quindi sì, gli spazi non sono compresi nell'espressione regolare.
Come si risolve? Scrivendo il controllo esplicitando una regex che contenga anche il carattere spazio.

Secondo me però non basterebbe, perché anche gli indirizzi
via la strada qua sotto 2/b
via la strada qua sotto, 2
via la strada qua sotto n°2
ti darebbero problemi dato che / , ° non sono compresi.

In sostanza dovresti pensare a tutti i caratteri che si posono scrivere in un indirizzo e scrivere una regex adeguata.