Data-pointer-object and unlimited polymorphic target

Seems like it has something to do with alignment constraints which both C structs and sequence types have.
It also suggests a workaround to get the desired result:

    type :: int_seq
        sequence
        integer :: i
    end type
    integer,target::i
    type(int_seq),pointer::i_ptr
    i=1  
    i_ptr => view(i) ! Now it works
    print*, i_ptr%i

It does look like a loophole in the Wirth sense.