> Assembly language isn't even the lowest level ... maybe the machine has microcode
Yup. Microops. Your x86 processor doesn't run x86 instructions; it dynamically translates (and caches) them into a small RISC like instruction set which can vary even in different chip models from the same vendor.
X86 is just a convenient "intermediate language". And by convenient, I mean a lot of software exists that runs on it.