It seems to me that "one process per window" would make it very difficult to implement dragging tabs between windows, and out into their own window.
- Tabs need to communicate with each other, or with a "host" application. In-process communication might be simpler than inter-process.
- Some people have WMs that don't provide an acceptable tabbing interface, and you want your application to have an acceptable interface everywhere. In this case I guess I'd suggest distributing a separate tabbing program along with your app, but that kind of separation of responsibility has definitely gone out of fashion.