If you're using the full brute force method of allowing every ray to update every cell it passes through, then at least the result doesn't leave holes in the inverted peeking image as it does in BASIC shown in your link.
The holes are positions where you can see around the corner. As you move down the corridor you hit positions where you can see around the it, then move closer and not be able to see around it, closer still and see around it again. However, that's with Bresenham lines. I'm now using a stricter variant called the 'Bresenham-based supercover line algorithm'
http://eugen.dedu.free.fr/projects/bresenham/ and no more holes!
But it does still mean that if you're standing next to a corner you won't be able to see along the whole edge of the wall around that corner, while someone standing around the corner further away along the wall edge *will* see you.
That's a case I didn't fix since it isn't a big issue in Cogmind, although I recall considering a fix during FOV implementation that would detect when you are standing at a corner like that and then calculate your FOV as if you were standing one cell ahead of where you are. Something to think about--maybe a variation on that would help? Depending on your game something like that might work.
The case changes with the switch to supercover lines but a variant still exists (favors the viewer in the corridor for some odd reason). What I've done is implement a 'peek' command that gives you the 'one step ahead' view as you describe. As the cases where it is most useful are easy to detect, I may automate it for use with a 'cautious' movement option later.
[EDIT] I should note that the additions to the lines caused by supercover are only used for blocking purposes, the area 'seen' is limited to the Bresenham line portion.
[EDIT2] The last artifact is fixed! Accidentally fixed it when I added a symmetry check and dropped the doubled diagonals from the supercover blocking checks. While I'm still using the basic raycasting approach (casting supercover lines from origin to each perimeter cell), I added a symmetry check that, only on the first encounter of a given cell, checks that an unblocked supercover line exists back to the player. It still seems fast enough for my intended purposes.