There are lots of ways to make push ups "corrective" rather than punitive. Whenever a recruit called me Sgt instead of MCpl, they got to do "rank structure pushups". Instead of counting them out "1- MCpl, 2- MCpl, 3- MCpl..." the offending recruit had to go through the rank structure on each downstroke, and then my rank on the upstroke: "Pte- MCpl, Cpl- MCpl, MCpl- MCpl..." For a recruit who is a minute late for a timing, you can demonstrate the length of a minute by leading them in PT for one minute. I normally took the total time to complete one push up (1/4 of the way down, 1/2 way down, 3/4 of the way down, 1/2 way up, etc.) When the platoon finally recovers, they'll normally make sure Bloggins isn't late again.
As for swearing at recruits, I had the dubious distinction (in 97) of nearly being charged for swearing at recruits. Lucky for me, the RSM convinced the commandant that he could take care of the discipline problem (me) without resorting to a charge. Funny thing was, I hardly ever swore at the recruits, unlike some of my colleagues. I just happened to let a couple of profanities slip out at a particularly deserving recruit within earshot of an MP. Oops.