I think my best *all around* set up with my 2.5L so far was with 33"s and 4.88 gears. There is no comparison on the road, the 33s handled a little better and braking was better. I could cruise down to ~35mph, or up the freeway in 5th gear and even up slight inclines in 5th. Gas mileage was in the upper teens. Off road the crawl ratio was good (for my area: tight, twisting in the trees with snow or mud most of the year, rocks will still make t-case gears nicer) and my Jeep went pretty well.
When I went to 35s, I also went with bead locks, a 4:1, and NV3550 trans (which has a slightly higher 5th gear....which works against the 4 cyl.) so I do not have a perfect apples to apples comparison. However while off road the 35" are great and the little more clearance and ability to roll over things is great, I was pretty surpised how much the on-road characteristics suffered. The braking was noticably weaker, but it is like a vacuum came and sucked the power out of the engine. 5th gear is only usable on perfectly flat or down hill road and I need to be going at least 55-60 mph to shift into that gear. Gas mileage is in the lower teens. Where I live, there are a lot of hills, which require me to shift into 3rd on the freeway. Also, I am in 3rd or 4th on level ground if there is a headwind.
Just my experience, FWIW. Depending on how much you drive your Jeep on the street or how much of a lack of power bothers you is only up to you. I drive my Jeep a lot, even dd if my other car is broken, but I think if my Jeep were my only vehicle I would go back to 33s and just have a little more challenge/pull winch cable a little more while off road.
As for your question about swapping in a 4.0L, while I have not done this, I do know that you will need (besides the engine): appropriate auto or manual transmission (and clutch, bellhousing, etc.), computer, motor mounts, 23 spline input shaft on the NP231 t-case, and all the misc. things such as radiator hoses.
So it all comes down to how much you want to pay for the 35's. Welcome to the slippery $lope of Jeepin!