-snip-
I thought the default keypool was 1000, so now the default has changed to 3000? What also surprises me is the size, having a keypool of 3000 and only 20Kb.
I think because descriptor wallets store descriptors instead of private keys, so it has a keypool of 1000 descriptors for each address type,
while with private keys, all three address types can be derived from it.
You can test it by using the config:
keypool=100n (
some value higher than the default);
then you'll see that the result of getwalletinfo for a descriptor wallet has three time the keypoolsize of what you've set.
For the size, it's partly because the database used for descriptor wallet "
SQLite" is lighter than legacy wallets' "
Berkeley DB".
But mostly because the newly created wallet only stores the "
parent descriptors" for each script type which are very small is size compared to storing individual private keys.