The repository on the server and thusly specs, get cached client side to cut down on bandwidth. Sort of a load it once deals. When you reload the game / client it does a check automatically for any changes between the two.
There is also a way to force that check real time / sort of invalidate the client spec. Not something you want to do often, in a production environment, but something that could be useful as an occasional anti cheat check.
For 99% of the users / time making spec changes will happen during a maintenance period or such for the end users. Just keeps things nice and clean.
If you make spec change real time, in production it could get a bit sticky, so lets say your in a boss fight, and the spec for fireball just took a big nerf, and the raid loses to the boss cause of it. <insert mass butt chewing on forums>