There's another consideration, and this isn't just specific to the B737. If you've entered the full range of winds at all Flight Levels (I always do), a positive wind gradient, i.e. increasing tailwind / decreasing tailwind with increasing altitude will push your optimum GNMPK above the optimum ANMPK, oftentimes, all of the way to maximum. Similarly, an unfavourable wind gradient will recommend a level somewhat lower than the Optimum Altitude, which (on most of the Boeing family FMCs) is for still air.
On very long range flights I always enter the full range of winds as early as possible in the flight so that the FMS / FMC can more intelligently compute the optimum step climb points. It's not at all uncommon to see the distance to S/C change by anything up to 600-700 miles as a result.