Multi-threading: You can send isolated `ref` around and there is an API for that in Nim devel. There is also `mm:atomicArc` now. And regardless of what Nim supports, the UI library should have some design and thinking behind how it approaches the problem.
Small footprint: Well when it comes to security this can also simply mean "fewer code to review" and "doesn't ship with a JS engine that can do arbitrary things", it doesn't have to refer to RAM usage or anything like that. Text mode: As I said, it's "nice to have" and optional, not a hard requirement. Support both retained and immediate mode: I think this is possible to achieve and you should really try to get this for Fidget. Because apart from that Fidget indeed comes very close to my wish list.