Other than the "rules" arguments, there's the benefit that you can change the implementation without breaking code that's the client of the class. IOW, if you use a Property to get a bitmap, the client won't break if you later decide to load the bitmap from a file instead of a resource that's compiled in. Gives you some flexibility.
Plus the benefit of being able to "screen" the values that would modify the variable. A simple example might be a number used as a divisor. If the value used in the attempted modification is zero, some other action rather than CPU trap is advisable.