(But only on a technicality: because every program where that breaks is not technically C, and the compiler is allowed to assume this doesn't happen.)
I suspect the Lisps you talk about use arbitrary sized integers by default? Python also has that default. It's a good default. If you want to optimize for size and want an integer of limited size, like a 64 bits or so, you should explicitly specify.