In the particular examples that you give, “Lake X” is used where the name has no meaning in English, while “X Lake” is used where the name consists of English words. I imagine a hypothetical lake called “Round” would be “Round Lake” rather than “Lake Round”. It will be interesting to see if that rule applies in general.
We discussed this a couple of years ago on the American Names Society’s listserv, and the general consensus was that Lake comes first primarily when the feature was named by the French or when the body of water is of particularly significant size. If the name is descriptive of the lake (Round, Green, Shady, Rice) in English that does nearly always seem to go first. Sometimes custom changes over the years: Chicago’s Lake Calumet was known as Calumet Lake on early 20th century maps.
Same sort of thing for mountains: Mt. McKinley, Bald Mountain. I had a thread similar to this quite some time ago about the difference between “range” and “mountains”: Alaska Range, Rocky Mountains. Never did get a definitive reply.