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.
{
#ifdef ENABLE_EXTERNAL_SIGNER
    CScript scriptPubKey = GetScriptForDestination(dest);
    const auto spk_man = GetScriptPubKeyMan(scriptPubKey);
    if (spk_man == nullptr) {
        return false;
    }
    auto signer_spk_man = dynamic_cast<ExternalSignerScriptPubKeyMan*>(spk_man);
    if (signer_spk_man == nullptr) {
        return false;
    }
    ExternalSigner signer = ExternalSignerScriptPubKeyMan::GetExternalSigner();
    return signer_spk_man->DisplayAddress(scriptPubKey, signer);
#else
    return false;
#endif
}
void CWallet::LockCoin(const COutPoint& output)
{
    AssertLockHeld(cs_);
    setLockedCoins.insert(output);
}
void CWallet::UnlockCoin(const COutPoint& output)
{
    AssertLockHeld(cs_);
    setLockedCoins.erase(output);
}
void CWallet::UnlockAllCoins()