For the most part, I'm right with you on your comments. However ... ... there's always a however ... sometimes someone hands you a schematic and says, "THIS is what I want, and THIS is what I'll pay you to recreate in programmable logic," and that's where the fun begins. I've had little trouble getting "transcriptions" of SSI/MSI designs to work in CPLD's, with the exception of one-shots, which can, but shouldn't, be implemented in CPLD's with SCHMITT inputs. However, some "TTL" library parts didn't work quite right when taken directly from the XILINX library, and some had extra or omitted signals, the justification for which was seldom available.
If someone wants THIS generated in CPLD/FPGA hardware, you have to give it your best effort, but if you do it in HDL, it's unlikely anybody will be able to review it to their satisfaction. If you present a 100 modules of VHDL to a group of guys my age, who went to college when transistor radios were just becoming commonplace, all you'll get is "what's this?" and maybe fired, unless, say, you can plug our device in an application for what you've got to replace, and demonstrate it works as well as the original.
Reviews are a problem. If you have a well-designed, well-documented, fully verified logic design implemented on a device that's working to your satisfaction, you still have to go through the review process. If the senior engineers, and I don't mean those kids who don't even remember back before there was a NASA, are presented with a single-page schematic, they can grasp what's going on in the design, at least to their own satisfaction, with the help of the documentation, in about a half an hour. If you hand them a stack of HDL listings, and especially if you've presented them with a block diagram that represents a bunch of HDL-implemented blocks, you're in for a rough ride, and a week of being raked over the coals, at great expense to someone, since all that engineering horsepower has to be paid, and the buy who signs their checks probably signs yours, too. If you show them a schematic, they know what it means and can interpret it as well as they need. If you substitute synchronous for asynchronous logic, they'll understand why you did that. Support it with block schematics and simulations and they'll bite. If you support it with HDL blocks and simulations, they'll fight. You'll be accused of bait-and-switching on them.
That, BTW, is why I'm so upset over the fact that both XILINX and ALTERA have made their schematic capture software a distant, neglected, and indadequately documented stepchild.
Richard