Beyond distributing load, the health-checking behaviour is what turns a set of servers into a resilient service. An instance that stops responding is taken out of rotation without human involvement, which converts a class of incidents into a graceful degradation.
The design decision that catches teams out is session state. If a user's session lives in one server's memory, requests must keep returning to that server, which undermines both balancing and failover. Storing session state externally — in Redis or a database — makes any instance able to serve any request, which is the property that makes horizontal scaling actually work.
Codazz builds this in production — Performance & Scaling.