Well.. I did a little wolf3d engine that ran on st (160*100 doublepixeled). But I didn't use putpixel at all.
The technique best used is painting vertical textured lines to a byte buffer to paint the walls and sprites and then to convert this to a bitplane screen. This is called chunky-to-planar conversion (C2P) and it's frequently used in ST demos.
I could send you the wolf3d source I made, but it's very sloppy and it shows slivers and glitches.