Re (3), FPGA Partial Reconfiguration has been a standard feature on high-end parts for a long time. However I've heard (never used it myself) that the present implementations are of limited utility. Most applications that can afford a high-end FPGA can afford an auxiliary processor for management duties, so self-reconfiguration remains something of a curiosity.