The pooling of source ports for Hide NAT between the various worker cores will be statically assigned if there are less than 6 worker cores. In this case it is more likely for a certain worker core to run out of source ports if it happens to draw a large number of connections from the Dynamic Dispatcher that are Hide NATted behind the same outside IP address.
When there are 6 or more worker cores present, Hide NAT source port pooling is fully dynamic between all the worker cores. This effect was mentioned in the second edition of my book (because it required a manual kernel tweak to enable dynamic allocation), but removed from the third edition once dynamic allocation became automatically enabled with 6+ worker cores defined. See here: sk103656: Dynamic NAT port allocation feature
Gateway Performance Optimization R81.20 Course
now available at maxpowerfirewalls.com