To avoid GPU/ASIC mining, difficult hashing functions, such as scrypt and scrypt-jane, are proposed as PoW algorithm (However, GPU and ASIC are also suitable for basic scrypt operation). Is it good for the cryptocurrency? Because a difficult algorithm also means CPU needs to spend much more time to find the solution. Although the "difficulty" of the cryptocurrency is dynamic and adjustable, maybe one day a very complicated algorithm scrypt-xXx is proposed, it might be hard to find the nonce even when the difficulty is very low. Will it create some problems to the cryptocurrency?
scrypt and scrypt-jane were chosen not because thay are "more difficult" then SHA-256, they are just different, and less suitable for GPU/ASIC implementation.
Whether using such algorithms is good or not is hard to tell. I'd say, since one can mine scrypt coins with commodity hardware now, while mining SHA256 coins even with decent GPU rig is futile, scrypt helps coin be more decentralized, which is a good thing.
One can of course create very difficult hashing algorithm (I'd say 10^80 rounds of bcrypt will be enough to ensure no one calculates a single hash ever). But cryptocurrency with such algorithm is unusable, and so would be forfeited.
So long as the difficulty can drop low enough there won't be a problem. If nobody cares about the currency, then it won't matter. If anyone cares about the currency enough, they'll mine a block. The only threat is if a large amount of mining power leaves at once. In this case, the difficulty can be very high and it can be difficult to muster enough mining power to get to the point where the difficulty drops.
But that's not the real problem. The real problem is that ASIC-resistant coins will always be much less secure than coins that can be mined by ASICs. With coins that can be mined by ASICs, anyone who wants to attack the coin must first invest heavily in the coin by buying ASICs -- an investment they will make worthless if their attack is successful. By contrast, coins that can be mined efficiently by CPUs and GPUs can easily be attacked with rented computer power and botnets, at much lower relative cost.
The necessity for having a difficult hashing function like the current one is two-fold:
a) it serves as proof-of-work, and make necessary some computing powe to find it. The harder you work, the easiest you get the reward, no short-cuts.
b) it helps controlling unnecessary proliferation of blocks. Automatic difficulty setting keeps the blocks coming out one every ten minutes, no matter how much aggregate computing power is invested in the network.