Does Bazel break up these steps automatically under the hood?
It could, in theory.
It could, in theory.
Something to be aware of though is that Bazel does do some stupid things around this space. Like adding and removing files causes the build rule to change (if using a glob), which will proc a full rebuild of the library.