{foo} has no use of its own: it answers the line Foo tag from pad. It exists so that the manual can show what a name resolves to when several kinds of thing carry it - an application tag in _tags/foo.php, a pipe function, a PHP function, a data or bool store, a content block.

A bare {foo} is looked up in a fixed order, and an application tag comes before the built-in one: a _tags/foo.php in the page's directory or one of its parents wins. A type prefix names the kind outright - {pad:foo} is always the built-in tag, {app:foo} always the application's, and php:, function:, data:, bool: and the other prefixes each name their own kind.

The second example below has a _tags/foo.php in its own directory, so the bare name and the app: prefix find that one, while pad:foo still reaches the built-in.