Yes, it will keep your displacements clean. It’s not doing a lossy compression like JPEG. PNG files are lossless, the optimization that optipng is doing is trying all the different deflate compression options to find the one that results in maximum size reduction, again fully lossless. It also does things like determine if extraneous data can be removed, or if the image can otherwise be simplified to reduce its size before it does the deflate compression search. So, as mentioned before, it will remove the alpha layer if the alpha layer is 100% opacity for all pixels (which is what you get when you have no alpha layer present in a PNG). It will determine if an image is grayscale (r=g=b for every pixel) and reduce it to grayscale format if so. It will also determine if an image has <256 unique colours/shades of gray and reduce it to palette mapped. And so on.
And all those intelligent reductions still work just fine with rendering applications reading the file in. They read grayscale/etc images just fine, and that’s all you need for displacement or bump maps. Normal maps will, of course, always be colour and not grayscale. But optipng can still find the smallest possible file size for you.
When I install new content, I always install it first to a temporary directory. I then run optipng and jpegtrans on everything it contains, check to insure the directory structure is correct (it amazes me how much content comes with whacked directories) and then finally copy it into my production library installation.
(jpegtrans does a similar search for the best lossless compression to use for JPEG files, like optipng does for PNGs. It usually reduces jpeg files 1-10% in size. optipng often does much more than that, since most PNG writers do minimal search (assuming they do any search at all and aren’t simply hardcoding deflate settings) because they want to be fast and not keep the user waiting when they save the file.)