There seems to be a bit of conflation between a project / programme of work, and a continuously developed product. Both of them are valid workflows, and there's definitely not a "one size fits all" model but things like "intentionally adding extra functions or features that were not defined in the original product scope." are 100% the point of being Agile; primarily that you can't know everything up front, and need to be able to react to change.
If there are external reasons for a fixed timeline (integrating with physical platforms on time, having to get it out before the holiday season, regulatory compliance etc) then that's cool, and if it's more "water-scrum-fall" than true agile then that's also cool. I can definitely understand wanting to keep a very fixed scope in these situations, but I generally don't like the term Scope Creep as a pejorative on an *overall* level... now I definitely agree that you shouldn't be mucking developers around on specific tasks that they're completing, and you definitely can't just do everything people ask for - you need to map it to strategic outcome and make sure you're working on valuable stuff, but on an macro level I feel that Scope Creep should be replaced with "We Learned Some Stuff We Didn't Know And Now We're Acting On It" - not quite so catchy though!