No, pistons don't solve the problem. Manufacturers do a pretty good job of getting the top of the piston fairly close to specification above the wrist pin. All the height dimensions are indexed to the wrist pin center. You really have to get the block decked to the right height. It makes all the difference in the world when its good compared to when its bad.
Cylinder heads on bikes are light years ahead of cars (except real racing engines). They have very straight, very downdraft ports with fairly narrow included angles between the valves to minimize surface area in the combustion chamber. There are lots and lots of reasons for why bike heads are better...
Car engines have to fit under the hood, so its just about impossible to get a decent port design. They almost always end up being too flat (centerline too parallel to the piston top), and needs lots of help if you really want high flow from them.
That's a lot of why I did the NA 2JZ head. The intakes are really a LOT nicer than the turbo head, and the exhausts are nothing but stellar compared to the turbo head. In fact, the turbo head is a perfect example of function following form. The two turbos had to be configured for sequential operation, so they had to be pretty close together. The only way they could do this was to aim the exhaust ports on 1 and 6 at the very middle of the head. So the exhaust ports for 1 and 6 are very long and aimed toward the engine's center. 2, 3, 4 and 5 all have very short ports, and even then, 3 and 4 are slightly aimed toward center. There is only one reason to have all this screwy crap going on: to fit the turbos in the space provided by the body designers. If the engine designers had their way, the ports would all have been equal length and straight as an arrow. They certainly are on the GE head.
I've seen some diagrams of the ports in the 2AZ. They are pretty normal except Toyco played some games with roof height on the intakes to provide swirl generation just before the air goes through the valves. I've played with that before and you can make some interesting things happen, but it requires a lot of time and testing to get it right. There are a few things I think might be interesting to investigate with this head, but again, you need one to work with, and you need a flowbench, and a LOT of time.