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.
{
    util::SettingsValue setting_value = chain.getRwSetting("");
    if (!setting_value.isArray()) return true;
    util::SettingsValue new_value(util::SettingsValue::VARR);
    for (const util::SettingsValue& value : setting_value.getValues()) {
        if (!value.isStr() || value.get_str() != _name) new_value.push_back(value);
    }
    if (new_value.size() == setting_value.size()) return true;
    return chain.updateRwSetting("", new_value);
}
static void UpdateWalletSetting(interfaces::Chain& chain,
                                const std::string& _name,
                                std::optional<bool> load_on_startup,
                                std::vector<bilingual_str>& warnings)
{
    if (!load_on_startup) return;
    if (load_on_startup.value() && !AddWalletSetting(chain, _name)) {
        warnings.emplace_back(Untranslated("Wallet load on startup setting could not be updated, so  may not be loaded next node startup."));
    } else if (!load_on_startup.value() && !RemoveWalletSetting(chain, _name)) {
        warnings.emplace_back(Untranslated("Wallet load on startup setting could not be updated, so  may still be loaded next node startup."));
    }
}
bool AddWallet(const std::shared_ptr<CWallet>& )