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_);
     Add  transactions that aren't already in a block to mempool
     Do this here as mempool requires genesis block to be loaded
    ReacceptWalletTransactions();
     Update  transactions with current mempool transactions.
    chain().requestMempoolTransactions(*this);
}
bool CWallet::BackupWallet(const std::string& strDest) const
{
    return GetDatabase().Backup(strDest);
}
CKeyPool::CKeyPool()