Effective refactoring improves code without drastically changing style or adding unnecessary complexity, while bad refactoring leads to harder-to-maintain code.