It seems like the internal pullup resistor can be enabled or disabled on command anyway since you have the explicitly set INPUT_PULLUP in pinMode for that pin.
Right! I've never used an external pull-up with the Arduino. (There may be cases where you need a different value resistor, or you may need a pull-down.)
So if the float switch is totally disconnected (float is in the vertical position) and connected to a digital pin that doesn't have an internal pullup resistor, the pin will still just randomly read HIGH or LOW due to environmental electromagnetic interference? Is that it? Basically, if the pin's not connected, it will still have random voltages running through it.
Two things - First it's the nature of the CMOS electronics. The old-original (bi-polar transistor) TTL logic circuits were high when open, although it was still standard practice to use a pull-up.
Secondly, the CMOS inputs are very-high impedance. You can drive the input high or low with with almost no current/energy. But, that makes it very sensitive to noise-pickup from any ambient electromagnetic energy.
...If you've ever touched the input of an audio amp and heard a hum or buzz, that's AC power line hum being picked-up by your body. If you lower the impedance (i.e. put a resistor in parallel with the audio input) the noise (voltage) will drop because there's not enough current from your body to get the higher-voltage at the lowered impedance. Guitar amps don't have a whole lot of gain, but they are very sensitive to noise pickup.
Hmmmm... how would having random voltages ever be useful? Why don't all the pins have built-in pullup resistors to "quiet down" the voltage when there is no signal present?
The high impedance can be useful in some applications. And, if you drive the input high or low, say by driving the input from another Arduino, you don't need a pull-up or pull down.
And in some circuits, it's advantageous (or required) to use a pull-down resistor.