There are several reasons for having a helper engine on the rear or as a swing helper in the middle. In the steam days, the engines typically weighed way more than any of the cars, so by putting the engine back in the train it allowed the train to cross bridges with the load spread out and not exceed its capacity. Another reason was to limit tractive effort to hopefully keep from pulling the draft gear out of the pockets, a particular issue with wood frame cars. Likewise in some territory the helper might be used to control slack, or cut its brake valve in during a release to help recharge the train.
As far as pushing too hard, again it depends on the condition of the draft gear and frame. You can push a car of the rail or jacknife it, especially if pushing against empties. Also remember that gravity is also pulling the train downhill, so that is added to the tractive effort when figuring if the draft gear will survive.
In steam days with smaller engines, they were all typically working at full bore. Each engine will push their share of the train's weight in proportion to their tractive effort.
On modern trains - older coupler knuckles broke at about 250,000 pounds, but modern ones are rated at around 360,000. Regardless you don't push harder than 250,000 or you can shove a flange up over the head of the rail especially on curves. The reason modern trains use Distributed Power (DPU) is because each remotely controlled unit can also be controlling the brake pipe, and the tractive and dynamic braking effort is spread throghout the train to spread the in train forces. The remote units can be controlled separately to assist in slack control. A pair of modern AC locomotives can develop more than 250,000 pounds tractive effort so they are limited by software when pushing on the rear of a train. You rarely see more than 3 AC locomotives working on the head end because they can easily exceed 360,000. Engines in the middle are both pulling and pushing so 4 or 5 engine consists can be used.