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.
{
    LOCK(cs_);
    WalletLogPrintf("CommitTransaction:\n%s", tx->ToString()); * Con
     Add tx to , because if it has change it's also ours,
     otherwise just for transaction history.
    AddToWallet(tx, {}, [&](CWalletTx& wtx, bool new_tx) {
        CHECK_NONFATAL(wtx.mapValue.empty());
        CHECK_NONFATAL(wtx.vOrderForm.empty());
        wtx.mapValue = std::move(mapValue);
        wtx.vOrderForm = std::move(orderForm);
        wtx.fTimeReceivedIsTxTime = true;
        wtx.fFromMe = true;
        return true;
    });
     Notify that old coins are spent
    for (const CTxIn& txin : tx->vin) {
        CWalletTx &coin = mapWallet.at(txin.prevout.hash);
        coin.MarkDirty();
        NotifyTransactionChanged(this, coin.GetHash(), CT_UPDATED);
    }
     Get the inserted-CWalletTx from mapWallet so that the
     fInMempool flag is cached properly
    CWalletTx& wtx = mapWallet.at(tx->GetHash());
    if (!fBroadcastTransactions) {
         Don
        return;
    }
    std::string err_string;