Is there any way to create a discount that only discounts one product in an order?
With the offer types defined in Commerce Discount / Commerce Discount Extra, there isn't much you can do. The closest ones to what you've described are the per-quantity % off discounts, but as you've discovered, you have to specify either a target product or product category. If you're using a taxonomy configuration that allows the per-quantity category discount (i.e. you have a term reference field on your product display nodes that you can target in the "Products in these offer categories" field), then you can configure this by just identifying every product category in a comma separated list. Otherwise this is going to require custom code.

Since your requirement is also to tie this to a coupon code, you're going to have to write that custom code as a custom offer type. It could be that you simply copy the per-quantiy product discount and change the matching logic to allow discounting any product on the order, but I gotta be honest ... that code is hairy. I wrote the current implementation, and I'm sure it would take even me a full day just to remember what's going on in there and try out some potential solutions.

That said, you could try to "hack" it using existing pieces. Basically ... you could create a new taxonomy vocabulary with a term that identifies products that are eligible for the free product offer. You can then add a term reference to that vocabulary on every product display and select the term for them. You're basically creating a global product category that all of your products are assigned to ... and you can then hide the term from the UI so customers never see it. This may actually be a preferable solution in the future anyways, as the merchant may end up wanting to restrict certain products from these coupons. Give it a go, let us know how it turned out!