A common code smell that can hinder the clarity of source code is making assignments within sub-expressions. This practice involves assigning a value to a variable inside a larger expression, such as within a loop or a conditional statement. This practice essentially gives a side-effect to a larger expression, thus making it less readable. This often leads to confusion and potential errors.