Recent point and click games started using more stats for characters. To be fair, this is good thinking and requires a lot of work in game-development terms. However, should the player be aware of how smart the game is? I think this is a critical forked path as some players love to be challenged while others wouldn't really sink into the idea of point and click games introducing such an element and see it as distraction from the main gaming experience.
I think it's a great idea to let the players know they are dealing with a smart game by all means. But there is a fine line between introducing smartness to the player for respecting and challenging their minds, and using smartness solely for showing off. This is the job of good design, which raises the question: What is the part of the game that players cannot see at all?
Code. Put most of the smartness in the background code. Some developers use meters and GUIs to display stats. This could be handy depending on the type of game and the targeted audience as well. But for myself, I can't imagine games such as Space Quest or Day Of The Tentacle having 'character strength' and 'throwing skills' being developed and displayable through out the game.
Since Epoch has many alternative paths; NPCs and dialogues, I had to introduce such elements in the game. But I hid them in the code and left their discovery totally depending on the players' intuitions and actions. One of the metrics I used is an integer variable for each character called characterName_mood. This variable is randomly initialized at the start of the game between -3 to +3 having positive values representing good mood and negative values for upset characters. Your actions during the game can change the values of each character's mood just like in real life. You can be nice to a character or give them an inventory item to add to their mood variable. This of course would make progress in the game and help solving some puzzles. However, other alternative puzzles could depend on upsetting some characters. In both cases, dialog options and replies change due to characters' moods.
characterName_mood is only one variable among many others in the game. It is hidden in the code and can only be sensed when interacting and talking to characters. So instead of having a displayed metric showing the variables' value, you can simply get a rough estimation from the replies of the characters.