Assume we've started Auto Scaling Group. Min=1 (we want to keep it as cheap as possible) max=X.
From common sense we may think that the desired capacity should be calculated, based on a load level processed by alarm rules. So why do we have to configure this value when we're starting to create an ASG? When we may want to configure it at all?
Think of the min and max as global bounds. The desired capacity can change over time, as you say, in response to a load signal. This number represents the number of instances you want "now."
Because ASG needs to know how many servers (within min/max boundaries) you want to have just after start.