An unallocated variable passed as an argument is not PRESENT

They have section A.9

A.9 Fortran 2008 deprecated features
In this section we describe features that were new in Fortran 2008, but are considered by us
to be redundant.

which lists the following features:

A.9.1 The sync memory statement, and atomic_define and atomic_ref
A.9.2 Components of type c_ptr or c_funptr
A.9.3 Type declarations
A.9.4 Denoting absent arguments
A.9.5 Alternative form of complex constant

The following section is

B. Obsolescent and deleted features
B.1 Features obsolescent in Fortran 95
The features of this section are described by the Fortran 95 standard to be obsolescent. Their
replacements are described in the relevant subsections.

I think it is unlikely that the committee would remove a feature introduced as recently as 2008 unless it were an outright bug.

In section A.9.4, the authors give an example of absent optional denotation:

subroutine top(x, a, b)
real :: x
real, optional, target :: a(:), b(:)
real, allocatable :: worka(:), workb1(:), workb2(:)
real, pointer :: pivotptr
! (Code to conditionally allocate worka etc. elided.)
call process_work(x, worka, workb1, workb2, pivot)
end subroutine
subroutine process_work(x, wa, wb1, wb2, pivot)
real :: x
real, optional :: wa(:), wb1(:) , wb2(:), pivot

and show that without the feature, calling process_work would be awkward:

if (allocated(worka)) then
  if (allocated(workb1)) then
    if (allocated(workb2)) then
      if (associated(pivot)) then
        call process_work(x, worka, workb1, workb2, pivot)
      else
        call process_work(x, worka, workb1, workb2)
      end if
    else if (associated(pivot)) then
      call process_work(x, worka, workb1, pivotptr=pivot)
    else
      call process_work(x, worka, workb1)
    end if
! (Remainder of huge nested if construct elided.)