An incremental compilation feature is coming to the self-hosted compiler: https://kristoff.it/blog/zig-new-relationship-llvm/
The @import method is only for "importing" C headers with declarations and have them automatically converted to Zig interface declarations (so in most cases you don't need manually maintained language bindings). For compiling the associated C soure files, Zig has a builtin C compiler.
For regular Zig source files, you just import them into other Zig source files, up to the "main file". Such imports are wrapped into a module struct (imported modules are just regular structs). The Zig build system takes care of efficiently compiling all this with proper incremental build support (one can explore the zig-cache subdirectory which is maintained by the zig compiler for details).
For example, these are the imports in a top-level file:
https://github.com/floooh/pacman.zig/blob/ed42fad79c3e9b4432...
The sokol.zig file groups other modules under a common namespace:
https://github.com/floooh/pacman.zig/blob/main/src/sokol/sok...
...which in turn imports "leaf modules" like this:
https://github.com/floooh/pacman.zig/blob/main/src/sokol/aud...
...it's one of the most straightforward module systems I've seen yet in any language.