Ok this is weird,
So my Max(@ID) is stuck at 39 no matter even if 40,41,42.. are created. I couldnt figure it out no matter what when i realized the default view shows only 30 items in pagination.
So the last item of the page was 39, considering some deleted items and skipped IDs like 1,2,5,7,8,9...34,,37,39 made 30 items on the page with last ID as 39. and thats all that Max function pulled from list.
Moment i changed the default view to show more items, say 1000, now its working fine and grabbing new id on max(@ID) everytime, which brings to interesting question: do Infopath default sharepoint receive data connection get items from default view url or complete SPListItemCollection?