Any machine has a statistical chance of failure. When you add redundancy, you change the overall system's chance of failure, but you can never take it to 100%. If the original machine/system has a 0.1% chance of failure in a year, and you now back that up with a similar machine, the system has a 0.1%*0.1% chance of failure. It may be very small, but it isn't 0. So, a cloud can have a high theoretical uptime, perhaps a very high one, but not 100%.
Of course, in real life, specifications seem to get altered as they meet the marketing department.
We should not confuse a 100% uptime SLA with 100% true uptime. A SLA simply provides for a compensation when a certain level of service is not achieved, but the amount is usually not worth fighting over.