In short: IN GENERAL - Those with SE degrees (or other non-CS degree, or no degree) can be excellent developers (good code style, good unit test coverage, aggressive PR reviewers, etc).
However, the art of computer programming - or computer system design -- is often in formally defining the problem at hand using computational structures (such as graphs), understanding the properties of that model, and creating a new algorithm over that model to solve it. Then developing a software system to mirror the properties of that formal system you designed.
Those people who did not spend dozens-to-hundreds of hours agonizing over their coursework in algorithms, abstract algebra, linear algebra, "foundations of computing" (i.e., computational complexity theory, computational theory, language hierarchies, etc) I found can lack this critical aspect of system design. Instead, they design systems that lack unity and are often simply a collection of routines to handle various inputs - rather than having the knowledge to think "Hm, maybe this whole thing I'm working on is a special case of a well-studied problem". What this means practically is that there is often a simpler, better-defined, and more testable solution lurking behind the veil of ignorance.
Sure, there are many many teams and projects for which the scale or complexity are not sufficient to warrant some kind of formal analysis and modeling -- but many do.