In most cases, an engineering student is expected to declare a major near the end of their freshman year.
In my engineering program, most students knew their intended major when they applied to college. Only a few engineering students either were undecided or changed major.
Some engineering degrees will have overlapping requirements during sophomore year (e.g., MechE, CivilE, and AeroE all will have both Statics and Dynamics as mandatory core classes). Often, several sophomore core classes for CS, ComputerE, and EE will overlap.
At many engineering programs, the Systems Engineering major (sometimes called Industrial Engineering) has the most flexibility. As a hiring manager, I tend not to hire those graduates because (in my experience) too often they know a little bit about many topics, whereas I need someone who knows a lot about a single topic.
Other degrees (ChemE) will have substantially different requirements as early as sophomore year.
If student changes major during sophomore year, then that might mean an extra year to graduate depending on what the old/new majors are and what core courses the student took. Other than the financial hit, this is fine. It is not odd to take 5 years to get a BS in engineering.