You missed the point, Cost of not overflowing would be globally the same indeed.
Say you need 10 structures, each with 2 strings of 512 bytes… you’ll need to maintain 10 safe strings on the side?
The issue is duplication of memory - may be you can’t afford it (not enough RAM) plus moving all the bytes will cost cycles… you don’t need any of this, and if it is a very large buffer within the most inner loop being frequently called it’s a difference between a working and non working solution…
The other issue as I said is that this library does not make it easy to embed the safe string in a struct and use it. It’s cumbersome at best….making code more complicated than necessary, which means higher maintenance cost.