The meaning hasn't changed. What you have in that case is a combination of two ballad commonplaces; looked at objectively, they are contradictory, but penknives were almost always "wee", even if, coincidentally, also "lang and shairp". The singer won't have seen that as a problem, or -probably- thought twice about it.