I agree with David that the performance impact is too small to worry about. You may have some clarity considerations though.
The driver sees if the SQL
string is the same. So if you substitute in different values, the SQL is different and the statement will not be prepared. This is the unbounded value your friend was talking about. if the value is always the same, the SQL is the same and the statement is prepared once.