These really provide control over 'power management' (or as might be better termed 'cost management!' on Azure)
Specifically, lets not have servers running when we don't need them. If we can power down (Deallocate) servers, then we only pay the storage cost (which is significantly less than the compute cost)
Min / Max help determine the minimum and maximum size of servers running in the environment for the farm at any time (based on user demand).
Max servers governs the maximum number of vm's that will be created of the required size. if all powered on, this would govern the max cost of compute (network charges will vary based on use) that the farm would cost.
The maximum number of users that could use a farm = MaxServers * #Sessions per server
Min servers sets the minimum servers that will run if no users are accessing the environment. Having >=1 server running means that a user will always be able to login.
It is possible to set min=0 (this means when =0 that you are not paying for compute for that farm), however the initial login experience for the first user in that cause would result in a long logon time (as the server first needs to boot and prepare itself for use - typically 5-6mins) It is therefore recommended to set Min >=1 , and consider your typical user demand. It does take time for a new server to power on and prepare itself for use (5 to 6 minutes) and therefore you need to consider what Min servers should be configured to meet typical logon storm user demand.
The user docs cover this in a bit more eloquent detail than I've done here! see Create a Farm in the docs.
As for adjusting the sessions per server after farm has been created; you are right.... today, adjusting that later is not possible. But, we will be looking at making that possible in the future,
makes more sense now, thanks. i hadnt spotted that section in the user docs.