Some of your test cases are good examples that the ending (even if it is not a morphological ending such as -ung, -heit, -schaft etc.) is an often fairly good (but very far from perfect) indicator of genus:
- I can mostly think of masc. words ending in -el: Apfel, Tunnel, Zipfel; but some are neutral (Kabel), some are fem. (Gabel)
- -at is more difficult. Heimat (f), Grat (m), Mandat (n); but I think neutrum occurs here almost only with word of latin origin (mandatum), though this case is way more productive (and hence possibly more wide-spread); but there are exceptions even to this (Primat (m) = near-human monkey; Primat (n) = preference/leading position)
- -a is very often female (Klima (n), Karma (n), Spa (n) are among the exceptions) and often from female latin words (Aula, Charta, ...)
- Well, Uhr is so short that any attempt to classify it by ending fails :)
In summary: Except for morphological suffixes, the spelling (esp. ending) of a word gives only something like a decent hint towards the genus.
Also, there are so many possibly endings (as opposed to the rules in Russian) that it is hard to keep an overview. But if you know e.g. that Baum is masc., then it is a very good guess to assume that most words that rhyme are masc., too (Raum, Saum, Traum, Schaum, Flaum, Zaum; but Pflaume (f)). But don't rely on that rule of thumb alone (Wind (m), Rind (m), but Kind (n))