@wfisher If you bind classes to instances, I guess you are using the Singleton scope. It's not bad practice per se. It's certainly a better practice than to use statics.
The good practice is to bind interfaces to singleton instances. This requires to extract interfaces for each of your singleton instances, which is often a pain. It does, later, allow you to properly mock and test each binding independently but, really, that may be over-engineering 😉