https://monero.stackexchange.com/questions/405/how-many-transactions-per-second-can-the-monero-network-handle
The numbers there, at least as far as CPU limits, are completely out of date as they are pre-RingCT. I don't know of new numbers.
Probably bandwidth and even storage (though the latter less so than the former) would be practical limits well before raw CPU throughput. This applies both pre- and post-RingCT.
Whatever the limits might be, they are all "soft" limits in the sense that they are defined by practical resource limits, and to a lesser extent implementation issues. The protocol itself has no meaningful "hard" limits.