I have read this post and it does not answer my question in its entirety:
I think of a microcontroller as anything that has some memory, registers, and can process a set of instructions such as LOAD, STORE and ADD. It contains logic gates and such to perform its role, but its main task is to be a universal processor of bits. I think of a Microntroller as a system of interconnected ASIC designs to create the ability to store and process instructions.
I think of an ASIC device as a circuit that has been specifically constructed using logical and electrical components to perform one single task, with no other task in mind nor extra hardware included.
I think of an FPGA device as an ASIC device (a low-level device) + a bunch of unused stuff left over, used to implement a particular truth table.
Despite its name, an FGPA feels very "application-specific", since it must be rewired to perform a new and different task. This leads to confusion with ASIC. Albeit, in the case of rewiring an FPGA, all necessary hardware should be present. Also, FPGA's are meant to be programmable, but isn't that what a Microcontroller is meant for?
The post above I referenced also mentions HDL, with which I am familiar. Can't HDL be used for both ASIC and FPGA, and by proxy to design an entire microcontroller?