When I asked teachers why calculus was required for discrete mathematics and programming I was told, "To create mathematically mature thinkers, which is a prerequisite for these topics." This seemed foolish to me, because calculus seems to weed people out who struggle with abstraction and decomposition, not teach it to them. Instead the topics could be explicitly taught, and thankfully these topics are taught in some schools.
Over the decades I've seen people who taking programming classes, struggle, and assume they're not smart enough. By sitting down with them and not only teaching these topics but demonstrating them in a concrete way, programming seems to come easily and naturally for these people who once struggled.
Discrete mathematics is incredibly important for programmers. I'd argue it's the single most important class for a dev. It also helps the student understand where a teacher or text book is coming from, by seeing how they structure their lessons, and how they communicate those lessons. The intent becomes transparent. Discrete mathematics taught me how to read text books in an effective way. This accelerated my learning of every subject I've studied since. For this reason, discrete mathematics should be taught easily and simply in elementary school. We're already teaching programming in elementary schools, so we're half way there already. Furthermore, the way discrete mathematics is taught today is difficult. It doesn't have to be. Difficult subjects can be made easy. The complexity of the subject is not an excuse to not teach the topic to kids.
That isn't right, either. I think it is worth exploring both sides. Surveys of what interests people, as well as constant trying of methods seems sensible. Somewhat inefficient, I suppose; but I feel efficiency is a trap. Often used as a weapon against exploring.
That is too say, fairness is also a trap. As long as we have the resources to go after methods, we should do so. Challenge people, but don't assume we know the skills necessary to meet those challenges. Drop timeline requirements, and just keep upping the challenges with smaller challenges along the way.