As to "Why is it taught in undergraduate courses?"
I think that many constructions needed in advanced mathematics use concepts from multiple different fields. For example, if you want to prove anything about the adeles (in algebraic number theory), you need to have a good background in both algebra and point-set topology.
Sylow's theorem, to cite your example, is interesting in and of itself, but I think that one purpose in teaching it is to give some meat to students who have recently learned the definition of a group. It is definitely nontrivial, one can appreciate and prove it without having to know mathematics outside group theory, and it gives students the chance to apply techniques they have learned (counting orbits and stabilizers and such) without asking them to learn new abstractions.