:v not used to move the cursor, but to perform an operation on all inconsistent lines. Thus, it scans every line of the file and executes your norm 0 for each of them that does not start with asdf. So he jumps with the first qwertyuiop and then does the same in zxcvmnm,. .
Easier to find the last matching line using gg? and then go down one line.
source share