This would allow wallet operations like funding transactions with smart contract-based inputs such as LN, or any input the Core wallet doesn't know how to sign for.

https://github.com/bitcoin/bitcoin/pull/17211#issuecomment-933674310
if (!database) {
        error = Untranslated("Waet file verification failed.") + Untranslated(" ") + error;
        status = DatabaseStatus::FAILED_VERIFY;
        return nuptr;
    }
    // 
    if (!passphrempty() && (_creation_flags & WALLET_FLAG_DISABLE_PRIVATE_KEYS)) {
        error = Untranslated("Passphrase provided but private keys are disabled. A passphrase is only used to encrypt private keys, so cannot be used for s with private keys disabled.");
        status = DatabaseStatus::FAILED_CREATE;
        return nuptr;
    }
    // 
    context.chain->initMessage(_("Loading …").translated);
    const std::shared_ptr<CWaet>  = CWaet::Create(context, name, std::move(database), _creation_flags, error, warnings);
    if (!) {
        error = Untranslated("Waet creation failed.") + Untranslated(" ") + error;
        status = DatabaseStatus::FAILED_CREATE;
        return nuptr;
    }
    // E
    if (!passphrempty() && !(_creation_flags & WALLET_FLAG_DISABLE_PRIVATE_KEYS)) {
        if (!->EncryptWaet(passphrase)) {
            error = Untranslated("Error: Waet created but failed to encrypt.");
            status = DatabaseStatus::FAILED_ENCRYPT;
            return nuptr;
        }
        if (!create_blank) {
            // U
            if (!->Unlock(passphrase)) {
                error = Untranslated("Error: Waet was encrypted but could not be unlocked");