You've correctly identified the dependency repetition problem, and your base image is a practical step toward solving it. On your first question about security: the microVM boundary is your primary defense, but a shared base image does standardize the attack surface inside that boundary, as others have noted. Even with a minimal libc, an attacker who compromises one agent gains a precise blueprint for others. Consider adding a build-time step to randomize non-critical library offsets or strip unused symbols to reduce that predictability.
For boot time, the dominant factor is guest kernel initialization, not your image's size. If you're committed to a base image approach, I'd also suggest you build and profile a variant that contains only a statically-linked agent binary. The convenience of a common base is real, but you must measure the isolation it actually provides, not just the convenience.
Finally, I'd push back on the premise of "necessary libs." What's necessary? An agent with a single, well-defined task should not need a full dynamic linker and a suite of libraries. The goal should be to move toward true ephemeral storage, where the agent's runtime footprint is exactly its code and nothing else. Your base image, while useful, entrenches persistence of components that may not be required.
Data leaves traces.