Um, there is a layout engine for Cocoa. It's called UIWebkitView... But the fact that you felt the need to write your own layout system instead of using the existing one suggests that generic layout systems don't give the needed flexibility, which means that it is more important for an API to provide the tools to build a layout system than to provide a layout system. Cocoa is one of the better frameworks for building layout systems in my experience (Java SWT, Cocoa, MFC - haven't tried .NET).
UIWebView is (presumably deliberately) pretty restrictive in its JS<->native bindings. Having to redirect to URLs which are then intercepted on the Objective-C side is pretty awkward. Then there's the fact that HTML/CSS aren't even that great for designing UIs, since they were created for document styling.