I really don't understand how anyone could dislike this episode; it had humor and poignancy and great cohesion that leads up to the finale of this show.
To address the point of Will and James, did you really think that James was going to be perfect and they would live happily ever after when they had only known each other less than a week? Nothing has ever come so easy - to anyone - and Will is no exception. It is my devout hope - please, please - that he and Jack will realize how much they mean to each other in the end.
The development with Leo was a great twist, also. I don't think this episode was about cementing the happy ending, it was more about keeping them real and what's more real than pain? In the end, things will work out, but all four characters will have to suffer a bit to reach it.