This might be a Refactor or a Bug even but if a partial update does not have the @WhenModified property loaded then the SQL update will include it (as expected) but the dirtyProperties set does not.
This has lead to a tidy up because since 4.x we dropped "All values optimistic concurrency checking" so the only properties in an update where clause are now the @id and @Version ... so the code in BindablePropertyUpdateGenerated has been simplified due to that change.