Yes it is possible to "mix" fonts, but the current way fontconfig/pango/etc does it is pretty useless and makes Linux as bad as Windows and considerably worse than OS/X.
Users think of choosing a single "font" and the font is called some SHORT and PORTABLE (to Windows) name like "Times", and the existence is controlled by the existence of a single file called "Times.ttf" on their computer. And if some Chinese glyph is not in that font, the user does NOT think this means "draw that glyph as a box". They want it to mean "draw the default version of that Chinese glyph".
Instead fontconfig should take a single name for a font. All glyphs not in that font file are instead taken from the "fallback set" of font files. This fallback set could be defined with some enormously complex config file (it likely also defines how to compose letters from the selected font, and might make decisions about obliqueing any letters if the chosen font is italic, etc). But this complexity is hidden from users as they never change it, they just choose fonts from the nice list of short string names.
In addition programmers do NOT want to use Pango and define "font sets" just so they can have a reasonable chance of printing a large number of Unicode glyphs. A "font set" is not portable and does not cleanly store in a small string that can be shown to the user or work cross-platform! Fontconfig/Xft and the Cairo "toy" interface should be fixed so that a font can be chosen with a small and reasonably-portable string and all glyphs appear (from the above font fallback) ALL THE TIME!