I once took a discrete math class for CS majors. I aced it. Loved it. Classmates would ask me to explain concepts to them before exams if they were having trouble. There was only one other student in the class who had gotten an A on every exam leading up to the final. He had a problem that he didn't know about, though. He didn't turn in the homework.
Now, homework for this class was not a measure of skill. It was just a way for the professor to have an extra way to determine that you were participating. I warned him the class before the final that he was gonna fail if he didn't get the teacher to give him an extension on the homework, because I knew he wasn't turning it in (there was a requirement in the syllabus that you needed to turn in 70% of the homework to have a chance at passing). Hell, he was proud of the fact that he was smart enough to understand the course material without doing it. He didn't ask for the extension, and a year later, he was sitting in the same class for which he had already mastered the material.
in many classes, homework has devolved into another technique to inflate grades. in most of my college courses the homework was either very easy or graded for "completion". almost always a complete waste of my time, but it was usually worth too many points to skip entirely.
I had a couple professors who would "assign" difficult problem sets that weren't graded at all. it was usually a bad call to skip them, because the exams were actually hard. that's the only respectful approach, imo.