The possibility to define a composite unique constraint for specific cases
Add a foreign key column in the user table that references the primary key of the address table. Call it default_address_id. This enforces uniqueness because it can have only one value at a time for a given user.
Then drop the is_default column in your address table because it risks disagreeing with the foreign key in the user table.