In short: for client-side performance.
Because GMail has a lot of Javascript (around 700 KB), it takes some time to download and run everything. By using a separate iframe, downloading and running the Javascript will not block the browser UI. Scripts and UI events in separate iframes will be executed in parallel by the popular browsers. This approach also allows you to construct a complete DOM for the interface in the other iframe while the scripts are still being executed. This article describes common solutions to the blocking-scripts problem.
Another iframe is required to allow the browser history to work. How it works exactly can be seen in the implementation in Google's Closure Library.
As for the impact on complexity of making sure the correct DOM is manipulated: the constructors of UI components in GMail (also part of the Closure Library) all take an optional DOM helper argument. This helper is bound to a particular DOM, which may be in a different frame. Manipulating different DOMs is completely built into the design of these UI components.