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.
{
     Can't relay if  is not broadcasting
    if (!p->GetBroadcastTransactions()) return false;
     Don't relay abandoned transactions
    if (isAbandoned()) return false;
     Don't try to submit coinbase transactions. These would fail anyway but would
     cause log spam.
    if (IsCoinBase()) return false;
     Don't try to submit conflicted or confirmed transactions.
    if (GetDepthInMainChain() != 0) return false;
     Submit transaction to mempool for relay
    p->WalletLogPrintf("Submitting wtx %s to mempool for relay\n", GetHash().ToString());
     We must set fInMempool here - while it will be re-set to true by the
     entered-mempool callback, if we did not there would be a race where a
     user could call sendmoney in a loop and hit spurious out of funds errors
     because we think that this newly generated transaction's change is
     unavailable as we're not yet aware that it is in the mempool.
    
     Irrespective of the failure reason, un-marking fInMempool
     out-of-order is incorrect - it should be unmarked when
     TransactionRemovedFromMempool fires.
    bool ret = p->chain().broadcastTransaction(tx, p->m_default_max_tx_fee, relay, err_string);
    fInMempool |= ret;
    return ret;
}
std::set<uint256> CWalletTx::GetConflicts() const