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_s);
    auto it = g_load__fns.emplace(g_load__fns.end(), std::move(load_));
    return interfaces::MakeHandler([it] { LOCK(cs_s); g_load__fns.erase(it); });
}
static Mutex g_loading__mutex;
static Mutex g__release_mutex;
static std::condition_variable g__release_cv;
static std::set<std::string> g_loading__set GUARDED_BY(g_loading__mutex);
static std::set<std::string> g_unloading__set GUARDED_BY(g__release_mutex);
static void ReleaseWallet(CWallet* )
{
    const std::string name = ->GetName();
    ->WalletLogPrintf("Releasing \n");
    ->Flush();
    delete ;
    
    {
        LOCK(g__release_mutex);
        if (g_unloading__set.erase(name) == 0) {
            
            return;
        }
    }
    g__release_cv.notify_all();
}
void UnloadWallet(std::shared_ptr<CWallet>&& )