So besides for the 999 cap, there's another mechanic that interacts with it.
The game tries to prevent you from further boosting your stat once you are at +6 OR at a 999 boosted stat (only accounting for stat boosts, not other modifiers). So Curse Snorlax's final cursed up stats become +5/+6/-6, not +6/+6/-6, because its attack becomes 999 at +5. Steelix becomes +6/+3/-6.
The exception to this is Belly Drum (and I believe Swords Dance too), because Belly Drum boosts two at a time before deciding whether or not to continue. This means that an even number of boosts on Snorlax takes it to +6, while an odd number takes it to +5. If Snorlax started on an odd number and you lowered its attack stat so that +5 is not >= 999 attack, it should still go to +6. I believe this is actually working on the sim, but it's important to note this is an exception to the general mechanic.
edit: Belly Drum also does not circumvent the 999 cap, only the boost cap in some situations. Only damage calculation time modifiers can circumvent the 999 cap (screens, thick club, light ball...).
This is very important for a variety of reasons, but the most important reason by far is that it affects how much damage crits do as I illustrated above. Steelix should be taking much more from crits from Snorlax when both are fully boosted because of how crits choose whether or not to ignore boosts/screens/burn/etc. This also slightly affects the damage roll with Rhydon. Screech just happened to be a way to easily illustrate the early boost capping without waiting for a crit.
Sorry for the long post, just want to make sure everyone's on the same page.