The words lachen ("to laugh") and lächeln ("to smile") are close etymological relatives. This is the reason of them being so close in spelling and pronounciation. lächeln is derived from lachen, it is a diminutive form of lachen.
While in German the noun diminutive is formed by adding the ending -lein and potentially transforming the core vowel to an Umlaut, the way of forming the verbal diminuitive by transforming the core vowel into an Umlaut and changing the verb's ending to -eln, is a common pattern, expressing small, difficile, or insignificant action (for instance in blinzeln, kitzeln, witzeln, fiedeln, rätseln...) and some of such verbs also have the "non-minimised" version productive - like schnitzen/schnitzeln, hacken/häckseln.1
German is not alone in conceptualising "to smile" as a small form of "to laugh", as a look at etymonline shows: Romance, Celtic, and Slavic languages tend to use a diminutive of the word for "to laugh" to mean "to smile" (such as Latin RIDERE "to laugh;" SUBRIDERE "to smile"), perhaps literally "small laugh" or "low laugh."2
So, besides the fact that there might be a sort of small laughing which is close to a big smiling, there is no overlap in the meaning of the two words in German which would not also exist in English.
But into the German language a closer conceptual proximity of "to laugh" and "to smile" is inscribed than into the English language. I guess the words are so close that most native speakers are intuitively aware of their close etymological relationship.
1 Thanks to tofro for clarifying this in a comment.
2 Credits to Carsten S for this information.