Your effective alphas approach here is, IMHO, something that could be done in the GC object. The GC could then just draw an RGBA of fill and an RGBA of line color *and the backend wouldn't need to know anything about _forced_alpha*.

Do you know of a reason why that wouldn't be a viable approach?