Things like topology and abstract algebra, does it teach you anything that is actually applicable in electrical engineering? Does it evolve your abstract thinking skills which could make you a better engineer?
For instance, in my life, I went all the way up to PhD level courses in mathematics. This translated into me being able to go into my start-up and solve all sorts of problems. I was also solving problems that were already solved because I was ignorant of what was considered good programming practice.
Like source control. Because I could, I wrote my own source control. Like an IDE. Because I could, I wrote my own.
I attribute my fantastic problem solving skills to my mathematics back-ground. After all, when dealing with proofs in abstract algebra and the creative process of making up strange sets that exhibit strange behaviors... Most things seem trivial at some level.
The fundamental problem of mathematics is that you spend a lot of time solving fake or stupid problems to build up the ability to solve real problems. If you are going to go into the cutting edge of research, then you will need those skills. Otherwise, you will be very good at solving artificial problems.
I want to say that it will make you a better engineer, but I'm very biased. I feel like it has helped me compared to my peers in terms of raw engineering power.
It's important to have a balance - there are infinitely many things that you could advise would be useful, and time is limited. When solving problems it's important not to dive in immediately, but also to ask "What of this has already been done?"
But even then, solving some of the problem first gives an appreciation of what has been done, and often makes you better understand the strengths and limitations of existing solutions. Your example of an IDE is one where re-doing it from scratch is unlikely to give a better result, but Linus re-did the source control idea, and did it better.
Part of the culture of learning higher math however rewards/tolerates esoteric behavior where practicality is just not valued.
I think it is all about related rates. If you are studying abstract algebra now hard-core, then you are missing out on doing some cool Kinect hacks now. Or, you are missing out on chatting up the girls over at the pub.
I found math very ... addicting, and I wish I had learned balance sooner. Instead, I thought it was a lot of fun to sit down every evening and grind on problems from "Berkeley Problems in Mathematics"
Topology, and the insights it brings, can make some of the analysis and linear algebra make more sense - there are unifying concepts and structures. Abstract algebra is more about symmetries and actions, and while also useful, possibly don't give the same sorts of insights.
Just my $0.02.
It helps to know what a topology is, but not much more, and you would learn enough "on the way" in learning analysis properly. It helps to know what groups are, because they do show up in practical things, but you don't really need to know full-up "group theory". (They show up because they capture the idea of symmetries, and it is useful in certain practical situations to talk about something being symmetric with respect to various transformations, e.g. under permutations or rotations or whatever. But in this case you don't tend to do much analysis actually using group theory beyond this.) A whole course on abstract algebra is not necessary unless you're interested. It may help in some indirect way of "helping you think better", it may not.
See, say, http://junction.stanford.edu/~lall/engr207c/ as an example of an EE course that does a fair amount of math.
(Also, above, I don't mean 'applicable' in the very indirect sense of "helping you think better" -- I mean people use it to do real stuff. Whether you want to do that stuff is another story -- there are certainly good things in EE/CS that don't require this kind of math.)
Years ago, abstract number theory was seen as pure mathematics unsullied by practical applications. And then along came cryptography.