When you create a new Item SharePoint fills out the default value in columns based on the Content Type used to create the Item.
All columns not included in that Content Type is set to "empty".
When you change the Content Type of an exising item SharePoint just enables you to edit the columns in that Content Type, but it doesn't change any of the values (and therefore can't set them to default value).
When would you like SharePoint to assign the default value?
It can't at creation time, because there might be multiple Content Types not used with different default values.
It can't at change time, because It doesn't know if the column is "empty" due to a user setting it to "empty" (could have be there in a previous content type)
If you need to force default values for all columns regardless of Content type used to create the item, then you need to add a EventReceiver which selects the values to use