I think there should be no difference between most recently applied tag or commit date in most cases, as release tags are usually applied in linear fashion.
If one wants to release a version of code that rollbacks to commit C that was made before previous release tag (v2), then one should make new commit, say F, that reverts functionality, instead of adding new version "v3" tag before "v2" tag.
A--->B--->C--->D--->E--->F (revert to C)
v1 v2 v3
So, for "Last" it can work by getting commit or tag date, which one is easier to implement.
If you think that "Last" behaviour is ambiguous, "Semantic Latest" can be introduced for tags only. "Semantic Latest" can compare tag names following semantic versioning rules. Something along the lines:
- Stripping any prefix of tag name (v1.1.1 -> 1.1.1, prod/1.1.1 -> 1.1.1)
- Stripping any postfix of tag name (1.1.1-beta -> 1.1.1)
- Splitting rest of the name by dot (1.1.1 -> [1,1,1])
- Comparing lists semantic versioning rule
- If results of comparing version lists is ambiguous, then prefix and postfix should be compared as strings