I had a website using cURL to get the country code text from maxmind as well for about 1.5 years with no problems as far as I could tell. One thing that I did do though was set a timeout of ~1-2 seconds for the cURL request and default back to a set country code if it didn't hit it. We went through about 1 million queries to maxmind I believe, so it must have been used.... If it didn't reach it in that time, I didn't want to slow the page anymore. That's the main disadvantage of using an external library - relying on their response time.
As for having it locally, the main thing to be concerned about is: will it be up to date a year from now? Obviously you can't get any more different IP addresses out of the current IPv4 pool, but potentially ISPs could buy/sell/trade IPs with different countries (I don't know how it works, but I've seen plenty of IPs from different countries and they never seem to have any pattern to them lol). If that doesn't happen, disregard that part :p. The other thing about having it locally is you could use mysql query cache to store the result so you don't have to worry about resources on subsequent page loads, or alternatively just do what I did and store it in a Cookie and check that first before cURLing (or doing a lookup).