It’s really the same thing I’ve whined about for the last couple of years (about WP’s mod_rewrite code) except that you are smart enough to have removed their <IfModule> wrapper.
In particular, I don’t like the use of RewriteBase as that affects your entire website (including your DocumentRoot). RewriteBase is designed to UNDO a mod_alias Redirect for mod_rewrite, not to change your DocumentRoot (as this would do).
The first RewriteRule is unnecessary (provided the WP index.php file is used in the redirection - it’s not) and the second RewriteRule MUST account for the lack of {REQUEST_URI} (http://www.example.com) with .? as the regex and /page.php is first checked in the server’s root then your DocumentRoot (it’s in the demo subdirectory). Finally, using something other than index.php as WP’s handler file is likely to cause some major problems (within WP), too.