A librarian with programming knowledge would be snapped up immediately (since most libraries are being forced to digitise their collections).
Someone who can speak arabic would be much better writing an english -> arabic translator than the vast majority of programmers.
If you're writing animation software, an animator who can program is much more valuable than a programmer who knows nothing about animation.
No, they would write unmaintainable, buggy crap. Ideally you'd have both a domain expert with programming knowledge and programmer with domain knowledge (if they're the same person, even better!), but if you can only have either a programmer with some domain knowledge, or a domain expert with some programming knowledge, you need the programmer.
Writing software that others depend on is hard.
You need to predict when it will be ready to use, you need to validate for strange inputs, and make sure it either works, or fails in such a way that the user knows it has failed. You need to write the code in such away that someone else can take over for you if you quit. You need to anticipate future changes, at least to the degree that you don't have to rewrite the thing every three months. You may have to discern what the program should do from the vague and contradictory statements of users who don't even know what's possible
There's so much more to software engineering / programming / application development / whatever-you-want-to-call-it than designing and implementing an algorithm, or writing a script to automate some frequent task.
Programmers are only a commodity for those who don't care about quality.