Прежде всего, этот метод является наследием AppKit (не в отрицательном смысле этого слова).
Да, любой вид в текущий момент имеет некоторый текущий размер и может извлечь его из свойства bounds. Но во время верстки возникают сложные ситуации, когда лучший размер зависит от не совсем статичных факторов. Возьмите текстовую метку, например. Он может быть объединен в одну или несколько строк, и количество строк может зависеть от максимально допустимой ширины. Таким образом, возможная реализация UILabel могла бы получить свой размер границ из ширины CGSize, переданной sizeThatFits:, и в этом случае этот размер буквально не является текущим размером получателя, но некоторым желаемым / предельным размером.
Таким образом, любой подкласс UIView может реализовать -sizeThatFits: так, как считает нужным (каламбур), и даже может свободно игнорировать параметр размера. Чаще всего, когда мне нужно реализовать этот метод, я игнорирую его, потому что могу вычислить его по внутреннему состоянию представления, но в более сложном сценарии вам может потребоваться использовать параметр size, чтобы подсказать себе определенные ограничения в макете.