Of course it's possible (as already answered). If you aren't talking about AI and processors improving themselves automatically (no learning), maybe reconfigurable computing would be what you're looking for. You put and RAM-based FPGA next to your processor and configure it to do some special tasks on-demand (i.e. if you need DES you configure it to do DES like a dedicated encryption hardware). If the task is recurring (you encrypt a huge file), you can ignore the impact of reconfiguring the chip on overall performace since the gain is far greater.
And there are also ideas for processors that are reconfigurable in a slightly different sense and so their architecture is optimised for one special C program (i.e. MP3 decoding) and these could be dynamically reconfigured during runtime (in FPGA). But it's ultimately left to the system designer to perform SW/HW matching optimisations. This could be taken even futher to multiprocessor designs, C program to system synthesys etc.
Check out NISC (No Instruction Set Computer) and other D. Gajski's ideas on the future of digital design.
- R.