Also regarding duality - just because there is a proof of duality between designs it does not follow that they design the same thing at all.
Classic example from CT: In sets (well, the category of sets and maps but still...), the cartesian product is dual to the disjoint union (sum type, variant record etc.) From this, anything proven about cartesian products (which is a lot, as it is fundamental to most of set-theory) proves something about the disjoint union through the duality. What it actually proves about disjouint unions is open to interpretation on a proof by proof basis.
Which is to say: The consequences of duality are rich and powerful, but they are often non-obvious and for systems with many moving parts almost certainly non-trivial.
Classic example from CT: In sets (well, the category of sets and maps but still...), the cartesian product is dual to the disjoint union (sum type, variant record etc.) From this, anything proven about cartesian products (which is a lot, as it is fundamental to most of set-theory) proves something about the disjoint union through the duality. What it actually proves about disjouint unions is open to interpretation on a proof by proof basis.
Which is to say: The consequences of duality are rich and powerful, but they are often non-obvious and for systems with many moving parts almost certainly non-trivial.