Why public synonyms become invalid
If you are modifying any object in Oracle where a synonym is linked, there is no alternative, you should recreate the synonyms.

I found that because in my application I have sometime the need to recreate custom views (e.g. for attribute length) , and each time i need to recreate synonyms. 

Even adding a rows in a table lead the synonym to be invalid.