Yep seems the divide is split down the middle of the physical modules, or the software implementation.
I am good at hardware, and poor / lazy at software, I lay my board out built to pass every idiot check i could dream up, (does not mean there isn't a better idiot, he just hasn't found me yet)
So i see there is a library out there for what I want to do, grab that,
1. Proof of concept, Ugly as heck patch code to get it working in a timely manner, to get the project green lighted
2. Cleanup pass while boards are being made, format and clean up everything that wasn't used, including all the library functions that are not used, reducing the complexity while meeting the same requirements, sanitizing values passed to functions, and rewriting blocks where the code looks sketchy.
3. Product Testing, see if the hardware works, possibly some small tweaking, then ship
So a number of my products are using an arduino centered bootloader, the IDE is setting the fuses and uploading my software, and it works, If your code locks up the arduino, it would probably lock up most other platforms,
Most other options seem to scare away other people from attempting to program a batch of boards, for the IDE, its plug in programming header, select burn boot loader, select upload, and its done, the UI is not a command prompt, I tired that with AVRdude and the technicians where struggling.
So to wrap up, using an "arduino" in a professional product doesnt just mean throw a uno and some sheilds in a box, as the IDE ecosystem still counts, at that point its a microcontroller with prebaked libraries, which while ugly or slow at times generally are well tested for the older chips. There are gaps, there are pitfalls, just like any other manufacturers prebaked libraries, take it at that face value, and I would say, use the chips all you want, but dont trust the libraries 100%, rip out what you don't use and do a quick sanity check. this is the only place I can see things going horribly wrong.
And a reminder, there is nothing in an arduino IDE that forces you to use there macro code, you can write assembly and flip bits in registers, However i agree the debugging is rubbish, so I try to not get to points where I need it.