Microcode is used to create the higher level instructions (assembly) the programmer sees. The microcode tends to control things such as whether status registers are enabled for a particular instruction, how many bytes the ip must move to find the next instruction, etc. Those are very low level functions which are not meant to be changed by a programmer.
A1) Tranditional CPU design dictates that new processors more than likely use microcode.
A2) Since CPUs have been integrated microcode has been used. One advantage of using microcode is the cpu size is reduced.
A3) This really depends on the CPU maker; More than likely this is not possible with a mainstream cpu. Microcode also tends to be burned to a ROM which means permanent updates are not possible.
A4) It is all proprietary. This is the underlying CPU designers architecture something the programmer is never supposed to see.