Hard coding an IP into an application is BAD... Its crappy design no matter how you look at it.
What happens when that IP changes.. Now the application has to be changed.. If the application used a fqdn to talk to whatever it is it needs to talk to.. All that has to happen is that fqdn points to whatever IP this services it running on.. It could change daily for that matter, etc.
The only scenario where you would have to use nat reflection is when the application in use is hard coded to that specific public IP.. Which would be a crappy designed application ;)
edit: Its possible the OP doesn't even have a fqdn that points to this public IP.. You can get a ddns fqdn that points to your public IP for "free".. so then just use the fqdn vs the IP, and again the need for nat reflection goes away.. If this is business use, you can get a domain for like $10 a year.
I stand by my opinion - if your using IP vs a fqdn to access pretty much anything its crappy design..
edit: Here you go - the person that uses hard coded IPs in an application vs fqdn.. Prob the same person that would design something like this
firealarm.png
ie they didn't think it through = crappy design ;)