For games and other micro-optimised uses yeah... super-fine control over where you put your pointer pairs with respect to other data members and cache lines could be warranted. If you're optimising at that level then fine, I'd do it (with Boost Intrusive). Otherwise I'd pick up Boost Multi_Index with a couple of 'sequenced' (linked node) or random_access (vector of pointers) indices. This is non-intrusive and has the construction and overhead you want.
I just wanted to spell out that in most use cases intrusion is a sucky trade-off with no benefit.
I just wanted to spell out that in most use cases intrusion is a sucky trade-off with no benefit.