Hi, welcome!
Tweag has built GitHub - tweag/rules_nixpkgs: Rules for importing Nixpkgs packages into Bazel. which allows Bazel to pull in nixpkgs dependencies. It has mainly been developer to support GitHub - tweag/rules_haskell: Haskell rules for Bazel. as they needed a way to pull in the GHC compiler but it should work with other Bazel plugins. In that scenario Bazel is directing the build.
Another approach would be to build a profile or shell.nix and first load the external dependencies using nix. One of the advantages with that approach is that the Bazel version can be controlled precisely. And CLion or another editor be brought in as well using that method. In that case the developer would first run a command to load the nix environment before invoking Bazel.
Regarding Windows support, this is still a challenge. If the need is to provide a developer experience then WSL is pretty good. But it doesn’t help if Windows executables need to be generated. In that case cross-compilation might save the day and both might be combined. See: