Update with default values in case clause
You can't. 

The relevant bit of the grammar for update is 

SET column_name = { expression | default | null }


You can only use the default keyword in place of an expression, not inside an expression. So you would either need to just use the value of the default directly (could be looked up from the system views to be dynamic) or spilt it into two update statements with appropriate mutually exclusive where clauses - one using default and the second using an expression - if you really want to use that keyword.