It's up to you whether to require entering a discount code, or otherwise to apply a discount automatically. If your cart has any "manual entry" discount codes configured, or if any product a buyer adds to their cart has its own discount code, then the code field would be displayed during checkout, even if an automatic discount had also already been applied (actually, I am not quite sure if the code field would still appear even if all discounts were configured as automatic and no code-based discounts had ever been configured).
As for the zipcode, it's just the way our cart works, in that the zipcode field is displayed whenever shipping calculation is enabled. Even flat-rate shipping requires an address to ship to. :^)