I think you can use へ or に more or less interchangeably in your examples without any real change in meaning, but に is probably the more common choice.
1a. 川の向こうへ渡る橋は一つしかありませんでした。
1b. 川の向こうに渡る橋は一つしかありませんでした。
2a. 友達とレストランへ行きます。
2b. 友達とレストランに行きます。
3a. 来月国へ帰ります。
3b. 来月国に帰ります。
Even if you use へ instead of に, you wouldn't be returning in the direction of your home country next month, you'd be returning to your home country. You most likely wouldn't be going in the direction of a restaurant with your friend, you'd be going to a restaurant with your friend.
Sometimes you find explanations online saying something like "に indicates a destination while へ indicates a direction of motion". While it's true that へ can indicate a direction rather than a destination, this isn't the whole story. The particle へ can also indicate the endpoint of motion, and it often does. When it does, へ and に have a lot of overlap.
In fact, when I check 明鏡国語辞典, I find:
①《移動や伝達など方向性をもつ述語とともに使って》
㋐《方向を表す体言に付いて》移動の方向を表す。
「一路西へ向かう」「右へ右へと回る」「こっちへ来い」「海の方へ飛んでいく」
㋑《地点を表す体言に付いて》到達点を表す。
「頂上へたどり着く」「故郷へ帰る」「池へコイを放つ」「荷物をロッカーへ入れる」
As you can see, monolingual dictionaries also list the "endpoint of motion" meaning for へ. Take a look at the examples under ①㋑:
Do you imagine finally reaching the summit of the mountain after a long journey, or do you imagine finally reaching in the direction of the mountaintop? What would that even mean?
Do you imagine returning to your hometown, or do you imagine returning in the direction of your hometown? The latter doesn't really make sense, does it?
Do you imagine putting your luggage in a locker, or do you imagine putting your luggage in the direction of the locker? Again, the latter is probably not what it means.
Sometimes へ is very much like に.
In general, when both へ and に can be used with the same meaning, に is more common. This is particularly true in speech, where に is significantly more common than へ.
So yes, it's true that へ is used more often in writing. Part of this is because of への and へと:
The sequence への is often used because *にの is ungrammatical:
東京への道 the road to Tōkyō
*東京にの道 (ungrammatical)
This construction is more common in writing than in speech.
And へと is a literary compound particle indicating a spatial (or sometimes non-spatial) goal, so of course in this usage へ appears mainly in writing.
But people certainly say へ as well, just not quite as often. In speech, へ appears particularly often following certain nouns, for example in そこへ or どこへ. So your friend's explanation that に is colloquial and へ is for writing isn't quite right.
In this answer, the giant asterisk * marks a sequence as ungrammatical.