IME, the +code format is a far better visual clue of an international number than always displaying the number "ready to dial".If you can rely on users knowing this conventoin, this sounds like a good solution to me. I suspect in most cases you would want your users to know when they're about to make an international call.[1]
Also, I don't think you can avoid having users who think they know better than the system what they're "supposed" to be doing. We have this issue just dealing with storage and presentation of numbers within the U.S. We only recently started requiring full 10-digit numbers at data entry.
The (old) logic was that the people using the numbers would most likely be in the same office as the people entering the numbers. So the one entering the number should enter it how it should be dialed. The problem with storing the full 10-digit number is that either the user or the system has to decide if the area code and the '1' are needed when dialing form the current location. Which means each fax server has to be aware of the area code it's dialing from and the current phone system rules for when it needs the extra digits.
If there were any sanity in the phone system, you could dial '1' and the full 10-digit number and your local exchange would figure out what to do and complete the call. But we still have cases where if you try that you can't make any local calls.
[1] But then again, calling from France to Spain isn't quite the same as calling from the U.S. to ... well, just about anywhere but Canada and Mexico. So I have no idea if intra-european rates are anywhere near what international rates from the U.S. are.