Πολύ καλή παρατήρηση και ερώτηση!
Γιατί δε δημιουργεί μια λίστα για το range, αλλά το αναπαριστά εσωτερικά ως όλους τους ακέραιους από ένα αριθμό a έως ένα αριθμό (ακέραιο) b. Έτσι όταν του ζητάς να ελέγξει αν κάτι είναι μέσα δεν πάει να συγκρίνει με όλα τα στοιχεία της λίστας (την οποία ουδέποτε την κατασκευάζει εσωτερικά) αλλά ελέγχει απλά δύο ανισότητες, αν κάτι είναι >= a και <= b.