Pros and Cons of 2 approaches for Contextual alternates

While researching for efficient ways for contextual alternates, I found “approach 1” on Github page or Amiri font .

“approach 2” is what I have done.

Wanted the experts on this forum to discuss pros and cons of both approaches.

# approach 1
lookup HehFinaLellah {
    sub heh-ar.fina by heh-ar.fina.Lellah;
    sub hehgoal-ar.fina by heh-ar.fina.Lellah;
} HehFinaLellah;

lookup LamInitLellah {
    sub lam-ar.init by lam-ar.init.Lellah;
} LamInitLellah;

lookup LamMediLellah {
    sub lam-ar.medi by lam-ar.medi.Lellah;
} LamMediLellah;

feature calt {
    lookupflag IgnoreMarks;
    # لله
    sub lam-ar.init' lookup LamInitLellah lam-ar.medi' lookup LamMediLellah @Hf' lookup HehFinaLellah;
} calt;

# approach 2
feature calt {
    lookupflag IgnoreMarks;
    # لله
    sub lam-ar.init' lam-ar.medi heh-ar.fina by lam-ar.init.Lellah;
    sub lam-ar.init.Lellah lam-ar.medi' heh-ar.fina by lam-ar.medi.Lellah;
    sub lam-ar.init.Lellah lam-ar.medi.Lellah heh-ar.fina' by heh-ar.fina.Lellah;

Thanks and regards.