Summary:
Have you ever made an interface between two -- or better yet even more -- different physics toolkits? For a online game (or at least with network physics)? How did it turn out? Lessons learned? Is it better to rewrite large chunks of code elsewhere, or did the investment pay off?
Bloat:
I'm using ODE physics toolkit for my indie game engine, but through a facade wrapper. The original idea was to be able to easily port to another physics toolkit (Havok, Bullet, whatever) if/when necessary/possible. This seemed like a good idea for starters, but now it's starting to look like there's a quite a few devils in the nitty-gritty details. Such as the need for individual per-root-object gravitation (which isn't even currently supported by ODE). Or callbacks when an object/island is disabled (not supported by ODE either).
The fact that Havok (which I really know nothing about) constantly grows with new tools and toolkits makes me fear that one eventually ends up with a framework rather than a toolkit. And that would not be good for portability, but perhaps my fears are totally unfounded.