In addition, EPIC is VLIW redux.
Its bundle scheme still permits a level of hardware instruction dispersal and dependency checking.
It is better at abstracting away the innards of the chip. Early VLIWs had instructions that had to map directly to functional units, and some didn't require decoding at all.
A few VLIWs even gave up on dependency checking, so any errors were competely out of the hands of the hardware.
IA-64 at least abstracts the basic low-level implementation details. A number of execution units were added in the transition from Merced to McKinley, but code that ran on Merced still ran on McKinley.
It may not have run optimally, but it still ran.
For the first VLIWs, something like that would have more than likely broken compatibility.
IA-64 also adds in a lot of instructions for speculation and prediction, in order for it to accomplish in software what OoO does in hardware.
Intel's major error seems to be the EPIC proponents' prediction that OoO improvements would become intractable back in the 90's.
It was at least a decade early on that account.