What is the reason for partially allowing visibility control of linked objects in the outliner?
When you link objects the linked object reflects the object in another .blend file. It wouldn't make sense for user to seem to be able to make changes to it.

When you link groups you are not really linking the objects themselves, but a new instance of the collection of objects. Its the same as when operating within the same .blend: new instance of object can be manipulated without affecting the original copies as long as you don't manipulate the data ie. mesh itself for mesh objects.