Point symbols need generalisation as much as any other type of object, because in small scales they also start competing for the space on the map. Usually (in popular internet maps) the most primitive way of point generalisation is chosen: points are classified, priorities are assigned to classes and then lower priority point is simply not rendered if a point with the higher priority is already rendered in the same space. If there is more than one point with the same piority in the same spot - result is even worse - decision is random.
Such solution is of course not ideal. There are a number of ways to generalise points: displacement, aggregation, symbol combination etc. Only one option, which was chosen for Lithuanian river map, will be described in this entry.
Initial situation is that sometimes rivermap points are so close one to another, that one of them is removed or they overlap:

In the picture above, bridge symbol is over the put_in/egress symbol. Both symbols are important - therefore we cannot remove/overlap any of them. Symbols have to be moved apart to fit both of them.
Order of symbols is also important to the reader of river map. In this particular example it is important to know, that egress point is after the bridge (going down the river). Therefore we choose an option to combine symbols into one and place them in the order of left to right as for reading - objects symbolised on the left side will be encountered before objects on the right.
We get a picture like this:

More attentive reader will notice, that in this particular situation - when river flows eastwards (from right to left) - direction of reading is the opposite from the geographical position of objects. But we have to understand, that in other places river could be flowing eastwards, nothwards or diagonally - different mixes/rules of depiction would make it harder for map reader to read the map correctly. Another important point - main usage of these combined points is in online map where it would be difficult to change symbols depending on direction of the map, chosen by the map reader.
You can check point generalisation in Lithuanian river map https://openmap.lt.
Discussion
Comment from giggls on 15 August 2020 at 00:02
One of the best solutions to this problems seems to be the usage of variables like Topographic isolation and Topographic prominence as we have them in peaks.
Unfortunately the calculation of these values is somewhat expensive:
https://en.wikipedia.org/wiki/Topographic_isolation https://en.wikipedia.org/wiki/Topographic_prominence
Comment from Tomas Straupis on 16 August 2020 at 07:41
Thank you for interesting read! Indeed isolation/prominence is one of the other ways to calculate priority - which points are more important in order to remove the less important ones. And it should work very well for peaks (provided you do not have other classes competing for the same spot on the map). In case of water points all points without exception are important, therefore removing any points is not an option.