I have to strongly disagree with this position. I base this on years of working automation and frankly a PCB should have as much component information as is reasonable to fit on the board. The problem is simply this you may not have access to the schematic nor a parts list.
One example here is an old robot controller board that never had a publicly available schematic nor parts list. Some connectors went bad on the board but thankfully the board was silkscreen with a lot of component information. With a bit of googling I was able to chase down the parts, that would have been a lot more difficult if the part information wasn't there.
Now with high density boards you will not be able to do this for every part on the board. However it wouldn't hurt to try for things projected to have a failure in the future. So while it can't happen every time or every place on a PCB, when possible it makes sense to label parts with values.
Think about it this way, many parts come with the data already printed on them. IC packages, transistors and many other parts get stamped from the factory with their part numbers. If that data is missing (because some idiot painted over or ground the data off), you would get a bit hostile with the manufacture. Sadly with resistors they often obliterate any indication of value when they fail. So it doesn't make sense to say never, rather value labels for something like resistors should be considered on a case by case basis and for some parts should be the norm.
I suggest that you *not* put the value on the PCB silkscreen. Instead, put the component ID# (R17, C3, etc.) and refer to the schematic or parts list for the value. Component values do change on occasion, and there may be details (tolerance, tempco, etc.) that matter. This type of info is important, and doesn't belong on the circuit board.