Yes, very true, and based on the design one would think it is not really needed. There are two bits for the pull up / pull down settings, and both can be off. Having one reset to zero and the other to one suggests deliberate by design.
I have not designed real hardware around one of these MCU's, but am playing with an idea, so have to see if this has some impact on the design. At the moment procrastinating with bare metal software development.

Found the repository of a Douglas H. Summerville with C header files for the RP2040, but decided that these needed some work to make them more useful.
https://github.com/dougsummerville/Bare-Metal-Raspberry-PI-PicoThe structs look like they are generated based on the manual, but in a way that make them less useful. Like the inclusion of the different regions for xor, set and clear. To me a more logical setup is a single small structure and assigning the correct base addresses to four sets of the peripheral.
//----------------------------------------------------------------------------------------------------------------------------------
typedef struct
{
__IO uint32 CS;
__IO uint32 RESULT;
__IO uint32 FCS;
__IO uint32 FIFO;
__IO uint32 DIV;
INT_CTRL_typedef INT_CTRL;
} ADC_typedef;
//----------------------------------------------------------------------------------------------------------------------------------
#define ADC ((ADC_typedef *)0x4004C000)
#define ADC_XOR ((ADC_typedef *)0x4004D000)
#define ADC_SET ((ADC_typedef *)0x4004E000)
#define ADC_CLR ((ADC_typedef *)0x4004F000)
//----------------------------------------------------------------------------------------------------------------------------------
It is work in progress though. Did manage to get the on board led to blink with code directly loaded into SRAM via SWD. Makes it a nice system to play with and saves on wearing the FLASH memory with many test writes during development.