My first question is, what level of physics knowledge is required to design a moderately complex circuit?
I have an electrical engineering degree, and I don't think I learned anything applicable in my physics classes. If you design semiconductors, I think you need some advanced physics & chemistry.
My engineering classes required a lot of math (calculus), but in my job and as a hobbyist, basic algebra is all I ever use. If you have a C.S. degree, you've had plenty of math...
As far as I know, Boolean logic doesn't get that complicated. The equations/operations for PLDs & CPLDs can get rather "involved", but it's the same simple logic with the same operatins over-and-over. One thing that's handy (you may already know this, depending on what kind of programming you do) is to get comfortable with hexadecimal. It's often helpful to know the value of a single bit, and you can easily learn to convert between hex and binary in your head (much easier than decimal-binary conversion). And of course, C/C++ do not directly work with binary (base-2), but they do understand hex (and octal).
I think it depends on what you mean by "moderately complex". Even with an electronics background, it usually requires some research when you start something new. (I assume it's the same with software.) If you were taking engineering in school, you probably wouldn't be programming a microcontroller 'till your 3rd or 4th year... After you've had your classes in all of the basics... DC circuits, AC circuits, digital circuits, semiconductors, analog circuits, etc.
But, as a hobbyist, you can jump-in with just a little knowledge in the area you're working on. I'd say it's a good idea to understand Ohm's law, Kirchhoff's Law, and how power is calculated. You should have a basic understanding of what resistors, capacitors, and inductors do, and if you are going to use transistors, FETs or MOSFETs, you should have an understanding of how they work. Same with op-amps & logic gates... If you are using 'em, you should have an understanding of what they do.
You should also have a multimeter and know how to measure voltage, current, and resistance, and understand the things that can go wrong when making these basic measurements.