The first sub-section of the DESCRIPTION section of the Text::Autoformat man page should clear up any confusion about the type of input the module expects:
The fundamental task of the autoformat subroutine is to identify and rearrange independent paragraphs in a text. Paragraphs typically consist of a series of lines containing at least one non-whitespace character, followed by one or more lines containing only optional whitespace.
Given that you haven't altered $/, your input operator is reading only one line at a time. As grantm suggested above, you need to pass the entire input text, not one line at a time, otherwise &autoformat is operating against each input line without the context required to derive paragraph-related information.