Hi,
This directive just sets when to use direct IO and when not to, it does not affect the Nginx output buffers which are used when sendfile is turned off.
Similarly, the cached value you see in free -m is the amount your OS use for caching IO, not nginx. If you wish to turn this off you must do so at the OS level.