If you didn't know, the hordes you see were changed to be governed by .xmls.
Specifically, a formula within the gamestages.xml which goes as such:
gameStage = playerLevel + playerLevel * (daysSurvived * daysAliveDifficultyBonus + gameDifficultyMultiplier )
The description for the variables are at the top of the same .xml; basically this says the longer it has been since your last death (or been alive), the number of days the seed has and the number of days you played this, the more zombies you have killed and the number of zombies killed versus deaths, as well as your player level detriment what your hordes consist of.
This includes sleepers within stores.
So if I am level 200 with 2 weeks since I died in a 2000 day game seed and have killed 6000 zombies my horde is going to consist of more ferals and radiated zombies as opposed to if I was level 200 having died yesterday with the same variables. The latter means I will see less ferals or radiated or perhaps none if you have died alot and killed few zombies.
This boils down to if you are lower level and have alot deaths then your hordes will be non-existent or weak relatively. They try not to overwhelm you and give you the same horde that a level 200 would get who kills thousands of zombies.
So I added, as you grow in "power", so to speak, the chances to see a witch or Scorched Walker in those hordes, with the chance increasing as you get higher level.