CPU's microcode can be surprisingly simple: The CPU has bunch of internal signals, which activates certain parts of the CPU and the logic when to turn each signal on comes from reading bunch of input signals. The microcode can be just a memory where the input signals are the memory address and the output is the control signals.

It's just that at some point when it's all physically wired up in hardware as opposed to being stored in some form of memory I have difficulty thinking of it as code or a program. By the time you're rearranging wires to enter a "program" aren't you actually refactoring the CPU itself?

Anyway I feel like the answer to the chicken and egg problem originally posed is to point out that things used to be different. Tools such as text editors and compilers are merely modern syntactic sugar.