It is good to have a foundation, and coding alone doesn't give it, hence the need to learn basic CS, but probably nobody can keep up with the cutting edge of it, being so vast and dynamic.
That's pretty much true of graduates in any field of science, not just computer science. A BS is a fine grounding in the basics of a field, getting a grip on -- usually some slice of -- the cutting edge is something you do by reading current research in the field.
I would disagree. Whilst CS did originally branch from mathematics, nowadays it is an interdisciplinary subject and to call it a branch of applied maths would exclude huge areas of CS such as HCI.
Software engineering is to programming as civil engineering is to construction. Software engineering is just a small slice of computer science.