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.
{
     Do some checking on  path. It should be either a:
    
     1. Path where a directory can be created.
     2. Path to an existing directory.
     3. Path to a symlink to a directory.
     4. For backwards compatibility, the name of a data file in -dir.
    const fs::path _path = fsbridge::AbsPathJoin(GetWalletDir(), name);
    fs::file_type path_type = fs::symlink_status(_path).type();
    if (!(path_type == fs::file_not_found || path_type == fs::directory_file ||
          (path_type == fs::symlink_file && fs::is_directory(_path)) ||
          (path_type == fs::regular_file && fs::path(name).filename() == name))) {
        error_string = Untranslated(strprintf(
              "Invalid - path '%s'. - path should point to a directory where .dat and "
              "databaselog.?????????? files can be stored, a location where such a directory could be created, "
              "or (for backwards compatibility) the name of an existing data file in -dir (%s)",
              name, GetWalletDir()));
        status = DatabaseStatus::FAILED_BAD_PATH;
        return nullptr;
    }
    return MakeDatabase(_path, options, status, error_string);
}
std::shared_ptr<CWallet> CWallet::Create(interfaces::Chain& chain, const std::string& name, std::unique_ptr<WalletDatabase> database, uint64_t _creation_flags, bilingual_str& error, std::vector<bilingual_str>& warnings)