Well, the part that makes it puzzle-like is that many roles have actions that are the most logical thing to do. A Cop role, for instance, should pretty much always be investigating and reporting their results back to town. A bodyguard role should always be guarding the Cop. And so on. If anyone deviates from this, they have to have a super compelling reason to do so or they're going to be lynched. They may be lynched anyway.
You could, possibly, set things up so that the powers have reasons to do things other than the most obvious action, but that would take a lot of thought. It might even be a static set-up, essentially, where a very specific set of roles for Town and Scum are actually balanced. And even then you have to worry about what happens as roles get removed. If the only thing stopping the scum from killing the Cop is a Bodyguard, and the bodyguard dies, then either the Cop is 100% dead or probably lynched the next day for not getting killed by the Scum.
Part of the major challenge of a Mafia game is that the Scum have more information than the town. With power roles, the fact that the scum all know who each other is and what powers they have as a team is part of their advantage. If everyone knows all of the powers in the game and who has them, the town has a lot more information to work with.
Town is supposed to be working at a disadvantage and trying to get clues fast enough to eliminate the scum before too many town die. The numbers are what gives them that chance in most games. If the only question left to ask is 'who is scum' while still giving town every possible tool to get more hints it's going to be hard to balance.
You could make scum super overpowered, like abilities that let them bypass blocks or get extra kills or whatnot, but that becomes really hard to balance. It also takes some of the fun out of the game, since the only thing worse than having no power is having a power that is actually completely useless.