A client pointed out that when he creates a new discount code with unlimited uses it's actually being inserted as 0 instead of the empty string. I was able to replicate it.
Debugging the code, I found that $wpdb->prepare() is returning the 0 for insertion even though $eshop_remain is set correctly as the empty string. Updating the discount code to fix it works.
I'm using WP 3.8.1, and eShop 6.3.11.