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.
CCoinControl();
    bool HasSelected() const
    {
        return (setSelected.size() > 0);
    }
    bool IsSelected(const COutPoint& output) const
    {
        return (setSelected.count(output) > 0);
    }
    void Select(const COutPoint& output)
    {
        setSelected.insert(output);
    }
    void UnSelect(const COutPoint& output)
    {
        setSelected.erase(output);
    }
    void UnSelectAll()
    {
        setSelected.clear();
    }
    void ListSelected(std::vector<COutPoint>& vOutpoints) const
    {
        vOutpoints.assign(setSelected.begin(), setSelected.end());
    }
private:
    std::set<COutPoint> setSelected;
};
#endif