There certainly have been approaches like the one you described. There's a relatively early prototype by Hobby and Goan (http://www.tug.org/TUGboat/Articles/tb05-2/tb10hobby.pdf) for a Chinese font defined in MetaFont (TeX's font description language) and another later attempt by a guy named Laguna (https://www.tug.org/TUGboat/tb26-2/laguna.pdf). There's a commercial solution by WenLin (http://guide.wenlininstitute.org/wenlin4.3/Character_Description_Language, https://wenlin.com/cdl, https://en.wikipedia.org/wiki/Chinese_character_description_language) that I can't judge. I remember there were attempts at Academia Sinica, Taiwan, in the 1980s and 90s to produce software that could generate character images on the fly from abstract definitions; I believe those were intended to be used for TV subtitles.
Furthermore, there are specialized operators defined in Unicode to describe the structure of characters called Ideographic Description Characters (https://en.wikipedia.org/wiki/Ideographic_Description_Characters_(Unicode_block) and http://www.unicode.org/versions/Unicode9.0.0/ch18.pdf#page=23). Using IDCs, it's straightforward to describe many characters; here's an excerpt of data provided by http://kanji-database.sourceforge.net (https://github.com/cjkvi/cjkvi-ids):
U+6946 楆 ⿰木要
U+6947 楇 ⿰木咼
U+694B 楋 ⿰木剌
U+245FA 𤗺 ⿰片辟
U+24602 𤘂 ⿰片夢
U+9E05 鸅 ⿰睪鳥
U+9E09 鸉 ⿱楊鳥
U+9E0A 鸊 ⿰辟鳥
U+9E0B 鸋 ⿰寧鳥
U+9E0C 鸌 ⿰鳥蒦
The above are the shortest meaningful formulas that can be given for each character; below you can see a sample of how I recursively resolved formulas to obtain the longest meaningful formulas; these of course depend on exactly which components you declare to be basic (which is often a bit arbitrary; e.g. 豆 can easily be further decomposed):
乾 ⿸⿰𠦝𠂉乙
亀 ⿱𠂊⿱日电
亂 ⿰(⿱爫龴⿵冂⿱厶又)乚
亃 ⿰⿱米⿰夕㐄乚
亄 ⿰(⿱士冖豆)乚
亘 ⿱一⿱日一
些 ⿱⿰止匕二
亟 ⿱⿻了⿰口又一
亢 ⿱亠几
交 ⿱亠父
亨 (⿱亠口了)
亩 ⿱亠田
享 (⿱亠口子)
京 (⿱亠口小)
亭 (⿱亠口冖丁)
亮 (⿱亠口冖几)
亵 (⿱亠⿰扌丸𧘇)
It would be great if there was software to compose character shapes from these formulas; I certainly would love to have such a facility. However, all the attempts to write a character generator that I know of either use a much more concrete representation giving the metrics and locations for each component, or they produced extremely ugly shapes and never went beyond proof-of-concept.