IMO, the biggest difficulty for SW to be adopted is its complexity
Some ideas are easy to explain but hard to execute. Other ideas are easy to execute but hard to explain. Segregated witness (segwit) seems to be the latter.
Ok it is very easy to write the code and implement it, but to convince the users to use your client is totally another story. Since SW is so difficult to explain, majority of users without enough time to dig into the slides and codes for weeks will just ignore it and take the simple approach of raise the block to 2MB
If you are operating a million dollar worth of mining farms, are you going to risk your investments on a set of not-time-tested new architecture which even the author have difficulty to explain to you how it works?
if mining pools dont upgrade. they wont accept SW transactions.. as told here:
You can continue to fully validate whatever transactions you are involved with as long as you don't need to deal with SW.
If you must receive or sent transactions involved segwit than you upgrade.
and users of SW will drop it and go back to bitcoin-core v0.12 instantly because their SW tx's are not being accepted and validated
if mining pools do upgrade to v0.13sw. the merkle tree is now 2 not one. and the data bloat for mining pools is 1.3mb not 1.0. (which negates the point of the 1mb)
v0.12 full node clients will then feel limp and receiving data they cannot check and so they are forced to upgrade..
now in my last 2 sentences.. if mining pools and full node clients are upgrading and mining pools are happy to have more than 1mb of data per block(which they have to be to even allow SW).. we might aswell up the block limit to 2mb and not have to make 2 merkle tree's
the SW fanboys are underselling the impact and overselling the features.. just for a 30% possible reduction for liteclients (but 30% increase for full nodes)
there are easier ways to increase the blocksize and implement malleability fixes. which if people need to upgrade.. should be done properly.. not this half assed manipulation that is only a temporary fix..
separately, lite clients can still save data by simply not saving signatures when they put it on their hard drives.. which should be a local decision for that lite client.. not a network decision