I feel that a lot of sw folks have a lack of imagination when it comes to hw. A lot of very smart people here work on making an efficient, fast front-end. There's lots of research in this area. To my eyes, the implementations are stunning.
To say that a variable-length CISC instruction set can never be as fast or effecient as ARM is sort-of like saying that an interpreted language can never be as fast as C. And we all know how that goes over on HN.
It's not a problem with being variable length or CISC, its a problem with the lack of self-synchronization. If you, say, had 8 or 16 bit blocks were first bit of each block told you whether it was the beginning of an instruction you wouldn't have this problem at all. I'd generally say that for a modern general purpose computer variable length instructions and a large number of op-codes are a good idea, though a large number of addressing modes seems to still be a disadvantage. Its probably no accident that ARM, the "CISCiest" of the RISC processors is so popular right now.
Overcoming an obstacle is great, but I feel like companies who don't have to overcome that obstacle can focus their energy on other aspects of the product.
Oh, come on. The problem with x86 is that it's a variable length instruction encoding that isn't self synchronizing. That is, you can start reading at byte 0 and read one set of valid instruction or you can start reading at byte 1 and read another completely different set of valid instructions.
This means that the logic to decode more than one instruction in a clock cycle is really complicated, and complicated means power intensive. For instance, in AMD's Bulldozer chip the instruction decode unit uses more power than the integer execution cluster. Now, ARM has its troubles too (instruction predication on every instruction means another logical dependency, meaning that if you go out of order your scoreboard is more complicated) but they're not as bad and don't really exist in alternate encoding like Thumb2 or the 64 bit one.
Intel is able to compete so well because they tend to have better fabs, they tend to reach a given node like 22nm before everyone else, and their performance on that node tends to be better than other players too. But x86 does have intrinsic disadvantages.