The awk is doing as stated in #1 post: "read out the values one by one in order to give it to grep"
The solution on #3 post could return repeat values from the awk (and perform more than one grep for a value) and will also match values like "value21" when searching for "value2".