But the way you're approaching iteration (with an abstract profile),
it throws away the previous data in each round.
No it doesn't. The previous abstract profile is fed into creating the next one, thereby continuing to refine it.
- you build a profile (first round, let's call it p1) the standard way; for simplicity let's say you use a 1000-patch chart and build with 21 gridpoints per axis in the B2A table. Total 9261 gridpoints of which probably over 70% are wasted space. (am I right?); so about 2000-3000 in-gamut gridpoints.
Yes. There are ways to make the B2A grid more efficient (especially using ICCV4 format), but you sacrifice the ability to properly gamut map out of gamut points in the full Lab PCS cube, since 1D lut and matrix values are clipped on a per component basis.
- you make a chart consisting of those B2A gridpoints, converted to device space (abscol) through p1. Of course only those B2A gridpoints that fall in gamut, and then only a sampling of them, so maybe 1000 new patches. This second chart will have 'weird' device values, so to say, not ordered or anything, because they're sampling PCS space not device space.
Refine is specifically aimed at improving proofing test charts, or other specific target colors, rather than any other purpose
Argyll has never needed any kind of test point ordering, and doesn't generally generate ordered test charts.
It seems to me that this method would make a very accurate B2A table, for in-gamut gridpoints.
As I mentioned, experience so far indicates that iteration doesn't buy much, as the profile is already close to the accuracy limit of the instrument and the device repeatability.