Horns and other decorations on helmets served many different purposes over the centuries.
The initial reason for decorating the helmet is to make the wearer look larger and more impressive and to provide a psychological boost against the enemy. Large horsehair crests on Mycenaean helmets were meant to inspire terror. A small incident in the Iliad has Hector frightening his son by entering a room still wearing his helmet, as probably the best known example.
Later the use of decorations was to provide identification of leaders in battle. In the Roman legions centurions wore traverse crests on their helmets to identify them in the field. Japanese leader's helmets from the Age of War could have fantastic decorations to mark high ranking leadership.
Samurai leader's armour
Clear identification of the leadership is the most obvious benefit from decorating the helmet, but the extra weight could unbalance the helmet, make it difficult to wear or to user to move their heads and provide places to catch an enemy blade. A "normal" helmet provides smooth surfaces to provide a glancing blow to a blade or bludgeon, rather than things to trap or redirect blades, potentially giving the enemy a means of providing a damaging blow. Of course, this also provides a means for the enemy to identify the leadership, and if they focus their attacks on eliminating identified leaders you could be in some trouble.
In general, helmet decorations are as large as practical, and reflect the role of the wearer. A Roman centurion's transverse crest is not so large that it affects his performance in the field, since he is embedded with the troops he leads. A Japanese general has a much more elaborate helmet, because in general, he will not be directly engaged in combat, but rather sitting back far enough to observe and direct the action.