According to Langenscheidt Wörterbuch, it means "smart", mostly. Based on literal definitions, "schrewd" would translate to "listig". Although, by inference, adjectives might change the meaning a bit on certain contexts.
As I mentioned in another comment: I'm guessing it's a cognate, but it's probably not an exact translation (or not the most common, at least). "Sly" probably has a few negative connotations that "schlau" does not.
Bettyluff: ein Beispiel zu " verschlagen" : Der Autohändler hatte einen verschlagenen Blick = the car dealer had a shitfy look, but it means all kinds of human contacts, in hich one of the both wants to play an unfair game.
I would say you give the person a compliment. Flirting depends on the circumstances. Of couse it helps if you witnessed them doing something smart before, if you go right up to a girl you never met before and tell her she is smart she might be a little confused ;)