I'm not sure what you mean. The point of having an FPGA is the ability to create the hard functions you need on the fly.
You missed a lot of things. Lets take just one. Let me say it in a simplified way:
FPGAs are difficult, while the average programmer is stupid.
You have at one hand a need for more and more embedded programming work (e.g. for the *cough* internet *cough* of *cough* things *cough*). And on the other hand you have a proliferation of barely capable programmers. So you need tools, concepts, systems, programming languages, etc. that don't ask too much from these programmers. At least if you want to get some kind of mediocre output at all at affordable cost.
FPGAs don't fit the bill for these people. And these people are the majority of what you get these days. They need guidance, not the flexibility to create functions on the fly. They need simple tools, not the mess FPGA vendors provide as their tool chains(1). They need simple concepts and dumbed-down programming languages. Do I like the proliferation of stupidy in the business? No, but that's the way it is.
FPGA as the future of embedded engineering? Nop, won't happen because of a lack of embedded engineers capable of handling them.
--
(1) Guess why these tools are such crap? Because the vendors don't and can't invest in really skilled programmers and engineers capable of designing and writing good software.
Any EE with half a brain can handle Xilinx's design tools. I don't know what to say about your assertion that engineers are almost universally stupid. Maybe all the engineers sitting around making Chinese clones of toasters and electric bug zappers aren't the best of the best, but most of us aren't doing that, and I'll bet dollars to donuts that most of us aren't even doing consumer devices. The guys I've worked with over the years are pretty damn competent and able to do their jobs, and if you're an EE in 2013, dealing with FPGAs is something you're expected to be able to handle.
re: everything else, and "HDLs are NOT programming languages".
Apparently, no one seems to understand the concept of a soft core. You configure a portion of the gates on the FPGA as a general purpose processor that you can then hand off to the embedded software engineer and he can program in C/C++ (or whatever is available). The EE and SE work hand in hand to divvy up the task, configure the processors for exactly what they need with whatever co-processors they need, setup the interfaces between them, etc.
So I can get 2 months into it and say, "Hey, you know what? What I could REALLY use is for you to monitor these 10 inputs, mux them, and set bit anytime one of them triggers. Filter it a bit for me too", and in a few minutes we can reconfigure the hardware to do just that. And then a week later I can say, "You know what would work better? Instead of setting a bit, please increment this word, and I'll decrement when I've serviced it.". What you have is a chip with a custom processor surrounded by custom hardware and interfaces designed by you and for you.
Maybe there's 5 million theoretical reasons you can come up with why that doesn't work, yet in the real world I've done it time and time again with tremendous success. It's probably overkill for a toaster, but then again what isn't? You just have to put on your big boy pants and learn how to use a couple of simple tools, but as a pro that's what you're expected to do.
re: cost and stuff like that
I suspect that most engineers and most projects are not consumer projects and the cost of an FPGA is really not all that significant. In fact, other than the work I'm doing now with my own business, I'd have to think hard if I EVER worked on a shrink wrapped consumer product, or even know anyone who has. I believe the answer is no. A friend of mine works for iRobot but he doesn't work on those cute little vacuum cleaners.