Having worked in companies which sell linux-based appliances, the above has been my experience. Some developers try to be more conscientious but don't have the time resource given by management to do a better job and a number of developers just hack and hack and hack at the thing until they get something to work. I could tell some horror stories about temperamental internal software that had idiotic interfaces and failure modes that couldn't be replaced because "well, it worked..sort of and it's already a sunk cost".
Heck, thedailytwf.com is full of stories like that.