Zookeeper is used to co-ordinate the nodes in the cluster. I dont think it is used to save the internal state of bolts. Unfortunately i cannot find a link where it is explicitly mentioned
Also you should take care of common problems while designing these sort of "aggregator" topologies. Suppose bolt A is handling the word "The" and B is handling word ocean. Assume that you spout crashed just afte emitting "The ocean is great". Bolt 'A' would have recived the word "The" and incremented it while 'B' never received any input.
Now when the spout is back and it sends "The ocean is great" again, bolt A should not over count the word "The". This logic will have to be handled by the application developer.
Trident takes care of these situations using transaction ids. Its worth to take a look at it.
Please have a look at these wikis -
You will get some insights on how to design your topology.