However, in case of out use-case where we push entire roster, putting a single item in a request would be highly inefficient.
What is that use case, where a server would push the entire roster? Why would it want to do that? I don't see that anywhere in RFC 6121 and can't imagine a scenario. I also think Tigase is the only server doing this.
That said, I like how Smack is strict about the spec and checks against the roster push rule.