You seem to be confused about a few things. The system I showed does not do any rendering. All it does is route states to state handlers so they can then handle the current state appropriately. While Init() can be a state it does not have to be. Update(), Render(), Cleanup(), and CollisionChecking() are also not states. Here is how I see those methods:
Perhaps I am just being obtuse here. So lets say all the different states have the same common methods: Init(), HandleEvent(), Update(), Render(), Cleanup(). But the GameState would need CollisionChecking(). How can you add additional functionality to your States? All the examples I can find use a generic blueprint.