A razão pela qual chamar o TileHandler em um contexto estático não é o melhor design possível, é o fato de associar componentes do seu design que poderiam ser dissociados.
Se você optar por ter mais de um TileHandler no futuro, precisará fazer muito trabalho para acomodar essa alteração.
Se você optar por remover o TileHandler, precisará fazer muito trabalho para acomodar essa alteração.
Suponha que você construa um nível / zona diferente no futuro, que lide com blocos de maneira diferente do seu TileHandler atual. Então você precisa ter uma maneira de especificar o método de manipulação de lado a lado a ser usado ou precisa chamar um manipulador diferente.
Se o TileHandler foi passado como um parâmetro para objetos que o utilizam, você pode simplesmente passar um diferente na próxima vez ou definir um manipulador de mosaico diferente nos objetos que o usam posteriormente.
Pessoalmente, acesso muitas coisas nos meus jogos XNA a partir de um contexto estático e presumo que nunca terei mais que um deles.
Se você quiser reutilizar o código do mecanismo de jogo no próximo jogo, provavelmente precisará reescrever muitas das coisas que você escreveu atualmente como estáticas.
Em resumo:
A favor de não usar o contexto estático:
Passar objetos como parâmetros, tanto quanto possível, dissocia elementos do jogo e permite modificá-los / reutilizá-los para os projetos atuais ou futuros com mais facilidade. Ele também permite que você gerencie a complexidade de grandes quantidades de código um pouco mais fácil (pense em ter centenas de gerenciadores estáticos em sua classe de jogo, em um grande jogo).
A favor do contexto estático:
Declarar e acessar objetos de um contexto estático facilita a criação de pequenos jogos que não exigem centenas de gerenciadores de estática. Simplifica muitos métodos e construtores, não exigindo um ou mais parâmetros extras que são acessados estaticamente.