Working on "Use std::filesystem. Remove Boost Filesystem & System" #20744, I found an unfortunate [pitfall](https://github.com/bitcoin/bitcoin/pull/20744#issuecomment-946046666) -- `boost/process.hpp` depends on `boost::filesystem` when cross-compiling for Windows. It happens in Guix environment as well.

The goal of this issue is to discuss and find a solution to get rid of `boost::filesystem`.
{
    LOCK(cs_args);
    fs::path& path = net_specific ? m_cached_network_datadir_path : m_cached_datadir_path;
    
    
    if (!path.empty()) return path;
    std::string datadir = GetArg("-datadir", "");
    if (!datadir.empty()) {
        path = fs::system_complete(fs::PathFromString(datadir));
        if (!fs::is_directory(path)) {
            path = "";
            return path;
        }
    } else {
        path = GetDefaultDataDir();
    }
    if (net_specific)
        path /= fs::PathFromString(BaseParams().DataDir());
    if (fs::create_directories(path)) {
        
        fs::create_directories(path / "wallets");
    }
    path = StripRedundantLastElementsOfPath(path);
    return path;
}
void ArgsManager::ClearPathCache()