Restrict coupon for same shipping address (or user creating multiple email ids)
There is surely a way to block this, you can alter the forms and add validations. But do you really want one to one mapping between shipping address and user account?

What if the old user wants to purchase the same product again, or a new user signing up stays in the same apartment?

Maybe you need to review your business rules and figure out a better way to restrict this behaviour. 

Maybe IP address?