Any non-greedy action generated by behavior policy will cause the weight to zero, as descripted too in the book
This is correct. The book also explains that this will tend to make learning slower for long trajectories - states and actions near the ends of episodes will tend to be estimated better.
So in general off-policy mc will not work for target policy being greedy !?
It will work, and is still guaranteed to converge to arbitrary accuracy measuring true value functions, provided the behaviour policy covers the target policy - i.e. all actions possible under target policy must have non-zero probability of occurring in behaviour policy.
However, convergence can be very slow for states only seen at the beginning of long trajectories, where there is a high chance of exploratory actions afterwards. Basically you have to rely on the chance of a long enough behaviour policy trajectory starting from whichever state, action pair that you want to improve estimate on - that it takes no actions with zero chance under target policy between those state/action starting points and the end of the episode.
In the limit of infinite samples, this is guaranteed to happen enough times to get an accurate estimate. It is not a theoretical problem, just a practical one of having enough time/CPU resources to run enough trials.
A low exploration parameter can help with longer trajectories, but it is a balancing act between slow updates due to low exploration or due to zeroed returns due to importance sampling when there is exploration.
This is a weakness of basic Monte Carlo off-policy control, and explained as such in the book. However, it is important to note that the method has proven guarantees of convergence. It works in that sense.