1) Monsters will be capable to adopt dynamically to your build to even the fight (within the balance)
For example. If you choose single nuke build against King Skeleton he will use some protective skill and rise a lot of weaker skeletons. If you will come with AOE build he would rise less but more powerful skeletons.
2) Game events will keep you always unsure what is the best build for a particular situation.
For example: The area is designed mainly for an AOE build to hint you into the AOE build. But the Skeleton King will randomly appear and attack you. Once he is at 50% life he disappears, regenerates and attack you randomly again and again till you reach his room to finally kill him.
EDIT: 3) Randomization of attacks and tactics
This is a simplified variation of the option 1. Every boss would have couple of different tactics how to fight and he would choose between them randomly. He would use only one tactic for a single fight. This would make it harder to find the best build becase it would have to be a build which is the most effective against all or most tactics. This can be combined with lesser mobs randomization. If an extraordinary good build would be found then devs can implement specific tactic to even the boss with this build.
EDIT: 4) Long term skill specialization system
Based on the same features as the specialization via gear system. It limits skill swapping to a same degree as gear system limits gear swapping. Because gear system is considered as a core feature of Diablo there is a potential that the same can apply for skill specialization system if executed right. The easies way to do it is to create skills and runes +affixes on gear. Disadvantage is that it can be too much gear centric, it is not possible to make skill swapping more available without making gear more available, it prevents gear swapping even more (which could be considered as an advantage).
Any other idea?
The most of the points above assumes you couldn't change skills in fight and if you would leave boss effective area and return back then boss would select tactic against you randomly again.
In such a case you would really choose your character based on how you want to play. But if there will be any other motivation like getting an advantage for a particular fight or because you have to (game balanced assuming you will swap skills) then it is badly executed.
If the game will allow players to dynamically adopt to a situation but the game will not dynamically adopt to players then the idea of free and always available respec is nice but badly executed, imho.
Note, I expect the game won't be based on a often skill swapping requirement as it brings a lot of other problems - pacing, balance, defeating the purpose of 6 active skills only. It could be used sparingly to spice up the game though.
EDIT: Replaced phrase 'counter your build' into 'even the fight'.