It's not a rock-solid 30fps. Halo 3 doesn't experience huge prolonged framerate spikes very much, but it's common for tearing to appear at the top of the screen with occasional stutters.Don't know why Bungie couldn't add some AA or AF when the games ran at a rock-slod 30 FPS. Would've made a huge difference.
The main reason they didn't add AA is that there wasn't a feasible way to do it alongside other design choices. Post-process AA wasn't really a thing yet, which leaves MSAA as about the only feasible option.
The Xbox 360 is somewhat nice in how, because the ROPs are tightly linked to the pool of memory that they output pixels into, there's no throughput penalty for MSAA samples. The problem is, MSAA still causes your framebuffer to take up more space in that memory. And that memory pool isn't very huge.
Oftentimes this was actually a really good fit for low-resolution games with forward lighting. Because they were low resolution, even when the framebuffer was doubled due to 2xMSAA, it could still reside fully in the render output memory. So, 2xMSAA was basically completely free.
But most seventh-gen games used 32 bits per pixel of color. Bungie was using a custom 64-bit-per-pixel format to facilitate the game's HDR, which made the framebuffer a lot bigger in memory. Doubling the size of Halo 3's framebuffer through MSAA would have prevented it from fitting all at once into the render output memory, and dealing with that by splitting the framebuffer into pieces adds some rendering overhead.