Short answer: Yes, our understanding of lift is complete, but solving the equations for some practical cases needs more resources than what is technically sensible.
Lift is a matter of definition
First of all, lift is only one part of the aerodynamic forces. It is the component normal to the direction of airflow. Since the aircraft will distort the local flow around itself, this direction is taken ideally at an infinite distance where the air is undisturbed.
The other component is, of course, drag. It is defined as the part of the aerodynamic forces parallel to the direction of airflow.
The aerodynamic forces are the sum of all local pressures, which act orthogonally on the local surface of the airplane, and the shear forces, which act parallel to the local surface.
When aerodynamics was researched first, electric fields were new and exciting, and the same equations which help to calculate electromagnetic forces could be used to calculate aerodynamic forces. Therefore, abstract concepts like sources or sinks were used to explain aerodynamics. This made it not easier to understand, and many authors tried to find simpler explanations. Unfortunately, they were mostly too simple and not correct, but the next generation of authors would mostly copy what had been written before, so the wrong concepts were still bandied about.
To get to the bottom of it, it might help to look at lift at a molecular level:
Every air molecule is in a dynamic equilibrium between inertial, pressure and viscous effects:
- Inertial means that the mass of the particle wants to travel on as before and needs force to be convinced otherwise.
- Pressure means that air particles oscillate all the time and bounce into other air particles. The more bouncing, the more force they exert on their surroundings.
- Viscosity means that air molecules, because of this oscillation, tend to assume the speed and direction of their neighbors.
All three contributions are well understood, and with the Navier-Stokes equations they can be completely mathematically expressed. What is still improving is our ability to solve these equations, and in turbulent flow the characteristic length required to capture all effects is so small that it is practically impossible to solve those equations fully with finite time and resources.
Flow over the upper side of the wing
Now to the airflow: When a wing approaches at subsonic speed, the low pressure area over its upper surface will suck in air ahead of it. See it this way: Above and downstream of a packet of air we have less bouncing of molecules (= less pressure), and now the undiminished bouncing of the air below and upstream of that packet will push its air molecules upwards and towards that wing. The packet of air will rise and accelerate towards the wing and be sucked into that low pressure area. Due to the acceleration, the packet will be stretched lengthwise and its pressure drops in sync with it picking up speed. Spreading happens in flow direction - the packet is distorted and stretched lengthwise, but contracts in the direction orthogonally to the flow. Once there, it will "see" that the wing below it curves away from its path of travel, and if that path would remain unchanged, a vacuum between the wing and our packet of air would form. Reluctantly (because it has mass and, therefore, inertia), the packet will change course and follow the wing's contour. This requires even lower pressure, to make the molecules overcome their inertia and change direction. This fast-flowing, low-pressure air will in turn suck in new air ahead and below of it, will go on to decelerate and regain its old pressure over the rear half of the wing, and will flow off with its new flow direction.
Note that lift can only happen if the upper contour of the wing will slope downwards and away from the initial path of the air flowing around the wing's leading edge. This could either be camber or angle of attack - both will have the same effect. Since camber allows for a gradual change of the contour, it is more efficient than angle of attack.
Flow over the lower side of the wing
A packet of air which ends up below the wing will experience less uplift and acceleration, and in the convex part of highly cambered airfoils it will experience a compression. It also has to change its flow path, because the cambered and/or inclined wing will push the air below it downwards, creating more pressure and more bouncing from above for our packet below the wing. When both packets arrive at the trailing edge, they will have picked up some downward speed.
Behind the wing, both packets will continue along their downward path for a while due to inertia and push other air below them down and sideways. Above them, this air, having been pushed sideways before, will now fill the space above our two packets. Macroscopically, this looks like two big vortices. But the air in these vortices cannot act on the wing anymore, so it will not affect drag or lift. See here for more on that effect, including pretty pictures.
Lift can be explained in several, equivalent ways
Following the picture of a pressure field outlined above, lift is the difference of pressure between upper and lower surface of the wing. The molecules will bounce against the wing skin more at the lower side than at the upper side, and the difference is lift.
Or you look at the macroscopic picture: A certain mass of air has been accelerated downwards by the wing, and this required a force to act on that air. This force is what keeps the aircraft up in the air: Lift.
If you look at the wing as a black box and only pay attention to the impulse of the inflowing and outflowing air, the wing will change the impulse by adding a downward component. The reaction force of this impulse change is lift.
Either way, you will arrive at the same result. By the way: Most of the directional change happens in the forward part of the airfoil, not at the trailing edge!
Supersonic flow
When the aircraft moves faster than pressure changes propagate through air, the changes in pressure are no longer smooth, but sudden. The aircraft will push the air molecules aside, producing a compression shock. Behind the shock front pressure, temperature and density are higher than ahead of it, and the increase is proportional to the local change in flow direction. The incremental pressure change $\delta p$ due to the aircraft hitting air with an incremental angle of $\delta\vartheta$, expressed in terms of the undisturbed flow with the index $\infty$, is proportional to the change in the streamlines:
$$\delta p = -\frac{\rho_{\infty}\cdot v^2_{\infty}}{\sqrt{Ma^2_{\infty} - 1}}\cdot\delta\vartheta$$
Gas pressure on a molecular level is the number and severity of particle collisions. The air molecules experience more collisions on the downstream side of the shock, since air pressure is higher there. The average direction of the additional collisions is indeed orthogonal to the shock, because it is the boundary between blissfully unaware molecules at ambient pressure ahead of the shock and their bruised brethren downstream which have just crossed that boundary. Once a molecule has passed the shock, the collisions are coming again equally from all sides and its speed does not change any more.
If the surface curves away from the local flow direction, the air produces an expansion fan which re-sets the old pressure and density values when the air flows again in its original direction.
Pure supersonic lift is only a matter of the angle of incidence, and any local curvature of the wing will not change overall lift (but increase drag). Now the total aerodynamic force is normal to the wing, and drag will become proportional to the angle of incidence. In hypersonic flow you will get good results with the venerable impact theory first formulated by Isaac Newton.
Separated flow
This happens when the air molecules are no longer able to follow the contour of the aircraft. Instead, you get a chaotic, oscillating flow pattern which is very hard to compute exactly. This is really the only part of aerodynamics which cannot be predicted precisely, even though the effects are well understood. Separated flow will produce lift, too, but less than attached flow. In delta wings, this separation is produced on purpose to create what is called vortex lift.