To do atlasing you need border pixels equal to the size of the largest hardware texture filter that you use. If you don't use mipmaps and use bilinear filtering, that's 1px. If you use 5 mipmap levels, you need 32px borders. If you use anisotropic texture filtering, god knows how big your borders need to be.
To do tiling, you do pixel shader math to remap from virtual texture coordinates to atlas coordinates. Stuff like parallax mapping/etc doesn't change this.
Yes, if you arrange your atlas either horizontally or vertically, you can skip half the math / border pixels, because hardware wrapping will work on one axis. Having strange texture sizes probably won't cause any performance/memory usage issues, but you never know. GPU's have all sorts of very strange internal requirements when it comes to alignment of texture data (especially mipmap storage layouts). Examples of hypothetical strange hardware-specific rules include things like --
* width being rounded up to a power of two (so a 500x200 texture takes up the same space as a 512x200 texture),
* pitch being forced to a multiple of 1024 (so a 4 byte per pixel 200px wide texture has a horizontal pitch of 800 bytes, which gets rounded to 1024 bytes, or the same as a 256px wide texture)
* mipmap level 1 vertical pitch being rouned to a multiple of 4KB -- so a 500*200px, 4 byte per pixel image takes up 400000 bytes in mip0, which is 97.65625 4KB pages, so mip1 won't begin until the 98th 4KB page, wasting 1408 bytes.
These rules are crazy and often unpredictable. I have worked with hardware where a thin/tall texture was very much preferred over a wide/short texture, to the point where we made our tools emit warnings to the art team when making wide textures
Square, power of two textures are pretty safe in general though
However, as mentioned earlier, you don't need atlases in most cases any more. You can just use a texture array and the hardware does everything for you.