All free services will only be accurate for the road segment. For each road segment, the starting and ending street numbers are stored and then interpolated. This saves processing time and disk space, and also increases resistance to new buildings. However, this results in evenly distributed addresses or crashes depending on how street numbers are allocated in real life. In addition, street-side rules can be consistent. Consequently, free and low-cost services are not considered good enough for emergency services and even urban planning.
You mentioned robustness, this is good for using multiple APIs. use the most reliable first. if this fails, your program may try another one.