Built against `master` branch 801dd40666d1e6009920ad3ff755c7bb993b2a62:

If I have no wallet.dat file and run:

    bitcoind -usehd=0

A new wallet.dat file is created and an HD seed is assigned.

I see an error message in the source:

    "Error loading %s: You can't disable HD on an already existing HD wallet or create new non-HD wallets."

but that doesn't get shown because `fFirstRun` is true, and so the code which checks for `-usehd` values doesn't run.

If it's no longer possible to create non-HD wallets, specifying -usehd=0 when creating a wallet should be an error, and not get silently ignored.
class COutput;
class CReserveKey;
class CScript;
class CScheduler;
class CTxMemPool;
class CBlockPolicyEstimator;
class CWalletTx;
struct FeeCalculation;
enum class FeeEstimateMode;
enum WalletFeature
{
    FEATURE_BASE = 10500, 
    FEATURE_WALLETCRYPT = 40000, 
    FEATURE_COMPRPUBKEY = 60000, 
    FEATURE_HD = 130000, 
    FEATURE_HD_SPLIT = 139900, 
    FEATURE_NO_DEFAULT_KEY = 159900, 
    FEATURE_LATEST = FEATURE_COMPRPUBKEY 
};
class CKeyPool
{
public:
    int64_t nTime;
    CPubKey vchPubKey;
    bool fInternal; 
    CKeyPool();
    CKeyPool(const CPubKey& vchPubKeyIn, bool internalIn);
    ADD_SERIALIZE_METHODS;
    template <typename Stream, typename Operation>
    inline void SerializationOp(Stream& s, Operation ser_action) {