In my experience, the way the Attendance module determines a grade is not what I would have expected: I would expect a user not marked present for a session to be assumed absent from that session, while the Attendance module appears to completely exclude from calculation sessions where the user has not been marked (either as attending or not attending).
Using your example, my guess is the Attendance module reports 12 points for User1 \( 12 * \frac{2}{2} = 12 \) and 6 points for User2 \( 12 * \frac{1}{2} = 6 \).
This gets even more confusing when a given user is not marked (present/absent) in a given session: to continue your example, in session #3, if User1 is marked as present but User2 is not marked at all, the Attendance module will likely report 12 points for User1 \( 12 * \frac{3}{3} = 12 \) and 6 points for User2 \( 12 * \frac{1}{2} = 6 \).
I hope that helps, and good luck!