A clarification on these command for you...
Reveal will reveal a unit's type and position, and I believe the command also reveals some other data such as the unit's direction and how fast they are moving.
If unita reveals unitb, then the "unita knowsabout unitb" will jump to 4 immediately.
If unita can't see unitb, "unita knowsabout unitb" will steadily drop back to 0.
A real life comparison...
Imagine if you saw a man 50m away from you, running North . Your "knowsabout" for him would be 4. Now, if the man ran behind a house and out of your sight, your "knowsabout" wouldn't immediately move to 0 - you would still have an idea of where he is (after all you saw which way he was running and how fast), but as more time went by without any sight of the man, you would be less sure of his position.
From my experience, this is how knowsabout and reveal work in the game.