Curl is essentially a web browser. It's there so that your web page can go look at other web pages. For casual needs, it's no big deal if it fails every now and then. Curl has the ability to do a really good job of pretending it's a web browser. It can handle cookies, follow web redirects, manage passwords, and deal with SSL sessions. Rsync, SCP and FTP don't do any of those things because they are built to be data movers, not web browsers.
Curl is often the right tool, however, for managing credit card authorizations because many of the gateway companies communicate over HTTP. As for dropped connections with high volume CC auth traffic, you don't want Curl to try to be your safeguard. You need to write your own error checking in PHP (or whatever language you like) to make sure that when you send a message, you get a response from the gateway.
To illustrate why you should do your own error checking instead of relying on a program like Curl to manage the connection, imagine that a bomb blew up the gateway company. Curl tries to make a connection and, of course, fails. If Curl is responsible for guaranteeing that the CC auth happens, it's not going to give up trying. It will try over and over until built in time outs in PHP and Curl make the session collapse in a mess. If, however, you write PHP scripts that are aware of the need for the CC authorization and they keep telling Curl to try until it's done, then if Curl fails, there is no messy collapse... PHP can optionally (A) send email warnings to you, (😎 write a record of the failed transaction to a database for a later attempt, (C) tell the user of the failed auth, or (D) it can opt to make Curl try again if you want. It's far more elegant to let PHP decide what to do if Curl can't make the connection than to let Curl decide how to handle the situation.