Would it be completely unreasonable to allow `fundrawtransaction` to use unsafe outputs?

I understand this means the resulting transaction may be invalidated whenever the unsafe output I'm relying one disappears (e.g. because the transaction that produced it was RBF-ed) but in my case that's ok, I'll react to that and re-publish the tree of child transactions accordingly.

But let me know if you think that's too much of a footgun for users, in that case I'll architect my solution differently.
{
    const std::string& File = database->Filename();
    chain.initMessage(_("Loading …").translated);
    int64_t nStart = GetTimeMillis();
    bool fFirstRun = true;
     TODO: Can't use std::make_shared because we need a custom deleter but
     should be possible to use std::allocate_shared.
    std::shared_ptr<CWallet> Instance(new CWallet(&chain, name, std::move(database)), ReleaseWallet);
    DBErrors nLoadWalletRet = Instance->LoadWallet(fFirstRun);
    if (nLoadWalletRet != DBErrors::LOAD_OK) {
        if (nLoadWalletRet == DBErrors::CORRUPT) {
            error = strprintf(_("Error loading %s: Wallet corrupted"), File);
            return nullptr;
        }
        else if (nLoadWalletRet == DBErrors::NONCRITICAL_ERROR)
        {
            warnings.push_back(strprintf(_("Error reading %s! All keys read correctly, but transaction data"
                                           " or address book entries might be missing or incorrect."),
                File));
        }